MTrackJ: Data Structure
MTrackJ uses a hierarchical data structure to store track points. As depicted below, subsequently clicked points form a track, tracks may afterwards be grouped into clusters, and a collection of clusters is called an assembly. While it is conceivable that in the future this structure is extended to include even more levels, currently MTrackJ supports only a single assembly. All newly created tracks are assigned to the cluster that is active at the moment of creation (by default this is Cluster 1), and all newly created clusters are assigned to the active assembly (which, naturally, is Assembly 1).

The tracking data is stored in dynamic arrays, which implies that the number of points that can be stored in any track, and the number of tracks that can be stored in any cluster, and the number of clusters that can be stored in the assembly, is limited only by available computer memory.