Index: plugins/CommandLine/build.xml
===================================================================
--- plugins/CommandLine/build.xml	(revision 35220)
+++ plugins/CommandLine/build.xml	(working copy)
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="JOSM/CommandLine: fix exception after JOSM update"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/CommandLine/src/org/openstreetmap/josm/plugins/commandline/GpxFilter.java
===================================================================
--- plugins/CommandLine/src/org/openstreetmap/josm/plugins/commandline/GpxFilter.java	(revision 35220)
+++ plugins/CommandLine/src/org/openstreetmap/josm/plugins/commandline/GpxFilter.java	(working copy)
@@ -7,6 +7,7 @@
 
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.BBox;
@@ -27,7 +28,7 @@
     public void addGpxData(GpxData data) {
         Collection<Collection<WayPoint>> currentTrack;
         Collection<WayPoint> currentSegment;
-        for (GpxTrack track : data.tracks) {
+        for (IGpxTrack track : data.tracks) {
             currentTrack = new ArrayList<>();
             for (IGpxTrackSegment segment : track.getSegments()) {
                 currentSegment = new ArrayList<>();
Index: plugins/DirectDownload/build.xml
===================================================================
--- plugins/DirectDownload/build.xml	(revision 35220)
+++ plugins/DirectDownload/build.xml	(working copy)
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="14153"/>
+    <property name="plugin.main.version" value="xxx"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/DirectDownload/src/org/openstreetmap/josm/plugins/directdownload/DirectDownload.java
===================================================================
--- plugins/DirectDownload/src/org/openstreetmap/josm/plugins/directdownload/DirectDownload.java	(revision 35220)
+++ plugins/DirectDownload/src/org/openstreetmap/josm/plugins/directdownload/DirectDownload.java	(working copy)
@@ -11,7 +11,7 @@
 import org.openstreetmap.josm.data.gpx.GpxConstants;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxTrack;
-import org.openstreetmap.josm.data.gpx.ImmutableGpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
@@ -61,7 +61,7 @@
                 }
                 GpxData dataNew = new GpxData();
 
-                for (GpxTrack trk : data.getTracks()) {
+                for (IGpxTrack trk : data.getTracks()) {
                     HashMap<String, Object> attrib = new HashMap<>(trk.getAttributes());
                     if (!trk.getAttributes().containsKey(GpxConstants.GPX_NAME)) {
                         attrib.put(GpxConstants.GPX_NAME, track.filename);
@@ -70,7 +70,7 @@
                         attrib.put(GpxConstants.GPX_DESC, track.description);
                     }
                     // replace the existing trace in the unmodifiable tracks
-                    dataNew.addTrack(new ImmutableGpxTrack(new ArrayList<>(trk.getSegments()), attrib));
+                    dataNew.addTrack(new GpxTrack(new ArrayList<>(trk.getSegments()), attrib));
                 }
 
                 data = dataNew;
Index: plugins/DirectUpload/build.xml
===================================================================
--- plugins/DirectUpload/build.xml	(revision 35220)
+++ plugins/DirectUpload/build.xml	(working copy)
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="applied JOSM Ticket 4498 (patch by ax) - oauth support for gpx upload (I accidentally committed parts of the path in [24236])"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="14153"/>
+    <property name="plugin.main.version" value="xxx"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGui.java
===================================================================
--- plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGui.java	(revision 35220)
+++ plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGui.java	(working copy)
@@ -24,6 +24,7 @@
 import org.openstreetmap.josm.data.gpx.GpxConstants;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
@@ -177,7 +178,7 @@
       String description = "", title = " ", tags = "";
       // non-breaking space in title fixes #10275
       if (gpxData != null) {
-          GpxTrack firstTrack = gpxData.tracks.isEmpty() ? null : gpxData.tracks.iterator().next();
+          IGpxTrack firstTrack = gpxData.tracks.isEmpty() ? null : gpxData.tracks.iterator().next();
           Object meta_desc = gpxData.attr.get(GpxConstants.META_DESC);
           if (meta_desc != null) {
               description = meta_desc.toString();
Index: plugins/ElevationProfile/build.xml
===================================================================
--- plugins/ElevationProfile/build.xml	(revision 35220)
+++ plugins/ElevationProfile/build.xml	(working copy)
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="[josm_elevationprofile]"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
     
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/ElevationModel.java
===================================================================
--- plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/ElevationModel.java	(revision 35220)
+++ plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/ElevationModel.java	(working copy)
@@ -6,7 +6,7 @@
 
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxRoute;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.IWithAttributes;
 import org.openstreetmap.josm.data.gpx.WayPoint;
@@ -146,12 +146,12 @@
     }
 
     @Override
-    public void beginTrack(GpxTrack track) {
+    public void beginTrack(IGpxTrack track) {
         createProfile(track);
     }
 
     @Override
-    public void endTrack(GpxTrack track) {
+    public void endTrack(IGpxTrack track) {
         if (curProfile == null) throw new RuntimeException("Internal error: No elevation profile");
 
         curProfile.setDistance(track.length());
@@ -159,17 +159,17 @@
     }
 
     @Override
-    public void beginTrackSegment(GpxTrack track, IGpxTrackSegment segment) {
+    public void beginTrackSegment(IGpxTrack track, IGpxTrackSegment segment) {
         // Nothing to do here for now
     }
 
     @Override
-    public void endTrackSegment(GpxTrack track, IGpxTrackSegment segment) {
+    public void endTrackSegment(IGpxTrack track, IGpxTrackSegment segment) {
         // Nothing to do here for now
     }
 
     @Override
-    public void visitTrackPoint(WayPoint wp, GpxTrack track, IGpxTrackSegment segment) {
+    public void visitTrackPoint(WayPoint wp, IGpxTrack track, IGpxTrackSegment segment) {
         processWayPoint(wp);
     }
 
Index: plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/GpxIterator.java
===================================================================
--- plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/GpxIterator.java	(revision 35220)
+++ plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/GpxIterator.java	(working copy)
@@ -5,7 +5,7 @@
 
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxRoute;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 
@@ -46,7 +46,7 @@
         }
 
         // tracks
-        for (GpxTrack trk : data.tracks) {
+        for (IGpxTrack trk : data.tracks) {
             visitTrack(visitor, trk);
         }
     }
@@ -57,7 +57,7 @@
      * @param visitor
      *            The visitor which inspects all GPX entities.
      */
-    public static void visit(GpxTrack track, IGpxVisitor visitor) {
+    public static void visit(IGpxTrack track, IGpxVisitor visitor) {
         visitTrack(visitor, track);
     }
 
@@ -73,7 +73,7 @@
 
     // ---------------------- Helper methods ----------------
 
-    private static void visitTrack(IGpxVisitor visitor, GpxTrack trk) {
+    private static void visitTrack(IGpxVisitor visitor, IGpxTrack trk) {
         if (trk == null) return;
         if (visitor == null) return;
 
Index: plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/IGpxVisitor.java
===================================================================
--- plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/IGpxVisitor.java	(revision 35220)
+++ plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/IGpxVisitor.java	(working copy)
@@ -2,7 +2,7 @@
 package org.openstreetmap.josm.plugins.elevation.gpx;
 
 import org.openstreetmap.josm.data.gpx.GpxRoute;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 
@@ -24,12 +24,12 @@
     /**
      * Starts a GPX track.
      */
-    void beginTrack(GpxTrack track);
+    void beginTrack(IGpxTrack track);
 
     /**
      * Ends a GPX track.
      */
-    void endTrack(GpxTrack track);
+    void endTrack(IGpxTrack track);
 
     /**
      * Starts a GPX route.
@@ -45,12 +45,12 @@
     /**
      * Starts a segment within a GPX track.
      */
-    void beginTrackSegment(GpxTrack track, IGpxTrackSegment segment);
+    void beginTrackSegment(IGpxTrack track, IGpxTrackSegment segment);
 
     /**
      * Ends a segment within a GPX track.
      */
-    void endTrackSegment(GpxTrack track, IGpxTrackSegment segment);
+    void endTrackSegment(IGpxTrack track, IGpxTrackSegment segment);
 
     /**
      * Visits a way point within a GPX route.
@@ -66,7 +66,7 @@
      * @param track the track containing the way point.
      * @param segment the track segment
      */
-    void visitTrackPoint(WayPoint wp, GpxTrack track, IGpxTrackSegment segment);
+    void visitTrackPoint(WayPoint wp, IGpxTrack track, IGpxTrackSegment segment);
 
     /**
      * Visits a way point within a GPX route.
Index: plugins/NanoLog/build.xml
===================================================================
--- plugins/NanoLog/build.xml	(revision 35220)
+++ plugins/NanoLog/build.xml	(working copy)
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="NanoLog"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
     <property name="plugin.author" value="Ilya Zverev"/>
     <property name="plugin.class" value="nanolog.NanoLogPlugin"/>
     <property name="plugin.description" value="NanoLog adjustment and browsing layer"/>
Index: plugins/NanoLog/src/nanolog/Correlator.java
===================================================================
--- plugins/NanoLog/src/nanolog/Correlator.java	(revision 35220)
+++ plugins/NanoLog/src/nanolog/Correlator.java	(working copy)
@@ -11,7 +11,7 @@
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxData;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.projection.ProjectionRegistry;
@@ -41,7 +41,7 @@
         long firstExifDate = sortedEntries.get(0).getTime().getTime();
         long firstGPXDate = -1;
         outer:
-        for (GpxTrack trk : data.tracks) {
+        for (IGpxTrack trk : data.tracks) {
             for (IGpxTrackSegment segment : trk.getSegments()) {
                 for (WayPoint curWp : segment.getWayPoints()) {
                     String curDateWpStr = (String) curWp.attr.get("time");
@@ -83,7 +83,7 @@
         List<NanoLogEntry> sortedEntries = new ArrayList<>(entries);
         //int ret = 0;
         Collections.sort(sortedEntries);
-        for (GpxTrack track : data.tracks) {
+        for (IGpxTrack track : data.tracks) {
             for (IGpxTrackSegment segment : track.getSegments()) {
                 long prevWpTime = 0;
                 WayPoint prevWp = null;
@@ -219,7 +219,7 @@
      */
     public static long getGpxDate(GpxData data, LatLon pos) {
         EastNorth en = ProjectionRegistry.getProjection().latlon2eastNorth(pos);
-        for (GpxTrack track : data.tracks) {
+        for (IGpxTrack track : data.tracks) {
             for (IGpxTrackSegment segment : track.getSegments()) {
                 long prevWpTime = 0;
                 WayPoint prevWp = null;
Index: plugins/editgpx/build.xml
===================================================================
--- plugins/editgpx/build.xml	(revision 35220)
+++ plugins/editgpx/build.xml	(working copy)
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Changed constructor signature of plugin main class"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
     
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxData.java
===================================================================
--- plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxData.java	(revision 35220)
+++ plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxData.java	(working copy)
@@ -7,6 +7,7 @@
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxRoute;
 import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 
 public class EditGpxData {
@@ -17,7 +18,7 @@
     private final List<WayPoint> waypoints = new ArrayList<>();
 
     public void load(GpxData data) {
-        for (GpxTrack track: data.tracks) {
+        for (IGpxTrack track: data.tracks) {
             tracks.add(new EditGpxTrack(track));
         }
         routes.clear();
Index: plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxTrack.java
===================================================================
--- plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxTrack.java	(revision 35220)
+++ plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxTrack.java	(working copy)
@@ -11,6 +11,7 @@
 import java.util.TimeZone;
 
 import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 
@@ -20,7 +21,7 @@
     private final Map<String, Object> attributes = new HashMap<>();
     private boolean isDeleted;
 
-    public EditGpxTrack(GpxTrack track) {
+    public EditGpxTrack(IGpxTrack track) {
         attributes.putAll(track.getAttributes());
         for (IGpxTrackSegment segment: track.getSegments()) {
             segments.add(new EditGpxTrackSegment(segment));
Index: plugins/gpsblam/build.xml
===================================================================
--- plugins/gpsblam/build.xml	(revision 35220)
+++ plugins/gpsblam/build.xml	(working copy)
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/gpsblam/src/org/openstreetmap/josm/plugins/gpsblam/GPSBlamInputData.java
===================================================================
--- plugins/gpsblam/src/org/openstreetmap/josm/plugins/gpsblam/GPSBlamInputData.java	(revision 35220)
+++ plugins/gpsblam/src/org/openstreetmap/josm/plugins/gpsblam/GPSBlamInputData.java	(working copy)
@@ -9,7 +9,7 @@
 import java.util.LinkedList;
 
 import org.openstreetmap.josm.data.coor.CachedLatLon;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.projection.Projection;
@@ -32,7 +32,7 @@
         Projection projection = ProjectionRegistry.getProjection();
         for (Layer l : layers) {
             if (l.isVisible() && l instanceof GpxLayer) {
-                for (GpxTrack track : ((GpxLayer) l).data.tracks) {
+                for (IGpxTrack track : ((GpxLayer) l).data.tracks) {
                     for (IGpxTrackSegment segment: track.getSegments()) {
                         for (WayPoint wayPoint : segment.getWayPoints()) {
                             if (p2.equals(p1)) {
Index: plugins/infomode/build.xml
===================================================================
--- plugins/infomode/build.xml	(revision 35220)
+++ plugins/infomode/build.xml	(working copy)
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="InfoMode : for shortcurt parser"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/infomode/src/org/openstreetmap/josm/plugins/infomode/InfoMode.java
===================================================================
--- plugins/infomode/src/org/openstreetmap/josm/plugins/infomode/InfoMode.java	(revision 35220)
+++ plugins/infomode/src/org/openstreetmap/josm/plugins/infomode/InfoMode.java	(working copy)
@@ -25,7 +25,7 @@
 import org.openstreetmap.josm.actions.mapmode.MapMode;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.EastNorth;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.projection.ProjectionRegistry;
@@ -218,8 +218,8 @@
 
         if (l instanceof GpxLayer && pos != null) {
             GpxLayer gpxL = (GpxLayer) l;
-            Set<GpxTrack> toRemove = new HashSet<>();
-            for (GpxTrack track : gpxL.data.tracks) {
+            Set<IGpxTrack> toRemove = new HashSet<>();
+            for (IGpxTrack track : gpxL.data.tracks) {
                 boolean f = true;
                 sg: for (IGpxTrackSegment seg : track.getSegments()) {
                     for (WayPoint S : seg.getWayPoints()) {
@@ -240,9 +240,9 @@
 
             double minDist = 1e9, d;
             WayPoint wp = null, oldWp = null, prevWp = null;
-            GpxTrack trk = null;
+            IGpxTrack trk = null;
             double maxD = mv.getDist100Pixel()/3;
-            for (GpxTrack track : gpxL.data.tracks) {
+            for (IGpxTrack track : gpxL.data.tracks) {
                 for (IGpxTrackSegment seg : track.getSegments()) {
                     oldWp = null; // next segment will have new previous point
                     for (WayPoint S : seg.getWayPoints()) {
Index: plugins/infomode/src/org/openstreetmap/josm/plugins/infomode/InfoPanel.java
===================================================================
--- plugins/infomode/src/org/openstreetmap/josm/plugins/infomode/InfoPanel.java	(revision 35220)
+++ plugins/infomode/src/org/openstreetmap/josm/plugins/infomode/InfoPanel.java	(working copy)
@@ -19,7 +19,7 @@
 import javax.swing.JPanel;
 
 import org.openstreetmap.josm.data.SystemOfMeasurement;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -30,8 +30,8 @@
 
 class InfoPanel extends JPanel {
 
-    private Collection<GpxTrack> tracks;
-    private GpxTrack trk;
+    private Collection<IGpxTrack> tracks;
+    private IGpxTrack trk;
 
     private JLabel label1 = new JLabel();
     private JLabel label2 = new JLabel();
@@ -72,7 +72,7 @@
             @Override
             public void actionPerformed(ActionEvent e) {
             if (tracks == null) return;
-            Set<GpxTrack> toRemove = new HashSet<>();
+            Set<IGpxTrack> toRemove = new HashSet<>();
 
             double tm = -1;
             for (IGpxTrackSegment seg : trk.getSegments()) {
@@ -83,7 +83,7 @@
                     }
                 }
 
-            for (GpxTrack track : tracks) {
+            for (IGpxTrack track : tracks) {
                 boolean f = true;
                 sg: for (IGpxTrackSegment seg : track.getSegments()) {
                     for (WayPoint S : seg.getWayPoints()) {
@@ -101,7 +101,7 @@
         });
     }
 
-    void setData(WayPoint wp, GpxTrack trk, double vel, Collection<GpxTrack> tracks) {
+    void setData(WayPoint wp, IGpxTrack trk, double vel, Collection<IGpxTrack> tracks) {
         this.tracks = tracks;
         this.trk = trk;
         if (!wp.hasDate()) {
Index: plugins/livegps/build.xml
===================================================================
--- plugins/livegps/build.xml	(revision 35220)
+++ plugins/livegps/build.xml	(working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <project name="livegps" default="dist" basedir=".">
     <property name="commit.message" value="Changed the constructor signature of the plugin main class"/>
-    <property name="plugin.main.version" value="14153"/>
+    <property name="plugin.main.version" value="xxx"/>
 	
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
Index: plugins/livegps/src/livegps/AppendableGpxTrackSegment.java
===================================================================
--- plugins/livegps/src/livegps/AppendableGpxTrackSegment.java	(revision 35220)
+++ plugins/livegps/src/livegps/AppendableGpxTrackSegment.java	(working copy)
@@ -4,8 +4,9 @@
 import java.util.Collection;
 
 import org.openstreetmap.josm.data.Bounds;
-import org.openstreetmap.josm.data.gpx.GpxTrackSegment;
+import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.data.gpx.WithAttributes;
 import org.openstreetmap.josm.tools.CopyList;
 
 /**
@@ -12,7 +13,7 @@
  * Thread safe implementation of GpxTrackSegement
  *
  */
-public class AppendableGpxTrackSegment implements GpxTrackSegment {
+public class AppendableGpxTrackSegment extends WithAttributes implements IGpxTrackSegment {
 
     private WayPoint[] wayPoints = new WayPoint[16];
     private int size;
Index: plugins/livegps/src/livegps/LiveGpsLayer.java
===================================================================
--- plugins/livegps/src/livegps/LiveGpsLayer.java	(revision 35220)
+++ plugins/livegps/src/livegps/LiveGpsLayer.java	(working copy)
@@ -14,7 +14,7 @@
 
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxData;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
@@ -50,7 +50,7 @@
         Map<String, Object> attr = new HashMap<>();
         attr.put("desc", "josm live gps");
 
-        GpxTrack trackBeingWritten = new SingleSegmentGpxTrack(trackSegment, attr);
+        IGpxTrack trackBeingWritten = new SingleSegmentGpxTrack(trackSegment, attr);
         data.tracks.add(trackBeingWritten);
 
         initIntervals();
Index: plugins/livegps/src/livegps/SingleSegmentGpxTrack.java
===================================================================
--- plugins/livegps/src/livegps/SingleSegmentGpxTrack.java	(revision 35220)
+++ plugins/livegps/src/livegps/SingleSegmentGpxTrack.java	(working copy)
@@ -6,15 +6,15 @@
 import java.util.Map;
 
 import org.openstreetmap.josm.data.Bounds;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
-import org.openstreetmap.josm.data.gpx.GpxTrackSegment;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WithAttributes;
 
-public class SingleSegmentGpxTrack extends WithAttributes implements GpxTrack {
+public class SingleSegmentGpxTrack extends WithAttributes implements IGpxTrack {
 
-    private final GpxTrackSegment trackSegment;
+    private final IGpxTrackSegment trackSegment;
 
-    public SingleSegmentGpxTrack(GpxTrackSegment trackSegment, Map<String, Object> attributes) {
+    public SingleSegmentGpxTrack(IGpxTrackSegment trackSegment, Map<String, Object> attributes) {
         this.attr = Collections.unmodifiableMap(attributes);
         this.trackSegment = trackSegment;
     }
@@ -30,7 +30,7 @@
     }
 
     @Override
-    public Collection<GpxTrackSegment> getSegments() {
+    public Collection<IGpxTrackSegment> getSegments() {
         return Collections.singleton(trackSegment);
     }
 
Index: plugins/measurement/build.xml
===================================================================
--- plugins/measurement/build.xml	(revision 35220)
+++ plugins/measurement/build.xml	(working copy)
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="recompile dure to core change"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
     <property name="plugin.canloadatruntime" value="true"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
===================================================================
--- plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 35220)
+++ plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(working copy)
@@ -28,7 +28,7 @@
 
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
@@ -284,7 +284,7 @@
                     points = new ArrayList<>(32);
                 }
 
-                for (GpxTrack trk : gpx.data.tracks) {
+                for (IGpxTrack trk : gpx.data.tracks) {
                     for (IGpxTrackSegment trkseg : trk.getSegments()) {
                         for(WayPoint p: trkseg.getWayPoints()){
                             points.add(p);
Index: plugins/public_transport/build.xml
===================================================================
--- plugins/public_transport/build.xml	(revision 35220)
+++ plugins/public_transport/build.xml	(working copy)
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="15496"/>
+    <property name="plugin.main.version" value="xxx"/>
 
     <property name="plugin.author" value="Roland M. Olbricht"/>
     <property name="plugin.class" value="org.openstreetmap.josm.plugins.public_transport.PublicTransportPlugin"/>
Index: plugins/public_transport/src/org/openstreetmap/josm/plugins/public_transport/actions/StopImporterAction.java
===================================================================
--- plugins/public_transport/src/org/openstreetmap/josm/plugins/public_transport/actions/StopImporterAction.java	(revision 35220)
+++ plugins/public_transport/src/org/openstreetmap/josm/plugins/public_transport/actions/StopImporterAction.java	(working copy)
@@ -27,7 +27,7 @@
 import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxData;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -209,9 +209,9 @@
         tracksListModel.clear();
         if (data != null) {
             Vector<TrackReference> trackRefs = new Vector<>();
-            Iterator<GpxTrack> trackIter = data.tracks.iterator();
+            Iterator<IGpxTrack> trackIter = data.tracks.iterator();
             while (trackIter.hasNext()) {
-                GpxTrack track = trackIter.next();
+                IGpxTrack track = trackIter.next();
                 trackRefs.add(new TrackReference(track, this));
             }
 
Index: plugins/public_transport/src/org/openstreetmap/josm/plugins/public_transport/refs/TrackReference.java
===================================================================
--- plugins/public_transport/src/org/openstreetmap/josm/plugins/public_transport/refs/TrackReference.java	(revision 35220)
+++ plugins/public_transport/src/org/openstreetmap/josm/plugins/public_transport/refs/TrackReference.java	(working copy)
@@ -13,7 +13,7 @@
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.IGpxTrack;
 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.Node;
@@ -23,7 +23,7 @@
 import org.openstreetmap.josm.plugins.public_transport.models.TrackStoplistTableModel;
 
 public class TrackReference implements Comparable<TrackReference>, TableModelListener {
-    public GpxTrack track;
+    public IGpxTrack track;
 
     public TrackStoplistTableModel stoplistTM;
 
@@ -39,7 +39,7 @@
 
     public boolean inEvent = false;
 
-    public TrackReference(GpxTrack track, StopImporterAction controller) {
+    public TrackReference(IGpxTrack track, StopImporterAction controller) {
         this.track = track;
         this.stoplistTM = new TrackStoplistTableModel(this);
         this.stopwatchStart = "00:00:00";
@@ -70,7 +70,7 @@
         this.threshold = 20;
     }
 
-    public GpxTrack getGpxTrack() {
+    public IGpxTrack getGpxTrack() {
         return track;
     }
 
