Index: applications/editors/josm/plugins/tracer/src/org/openstreetmap/josm/plugins/tracer/ConnectWays.java
===================================================================
--- applications/editors/josm/plugins/tracer/src/org/openstreetmap/josm/plugins/tracer/ConnectWays.java	(revision 35975)
+++ applications/editors/josm/plugins/tracer/src/org/openstreetmap/josm/plugins/tracer/ConnectWays.java	(revision 35976)
@@ -49,8 +49,8 @@
             LatLon ll = n.getCoor();
             BBox bbox = new BBox(
-                    ll.getX() - MIN_DISTANCE,
-                    ll.getY() - MIN_DISTANCE,
-                    ll.getX() + MIN_DISTANCE,
-                    ll.getY() + MIN_DISTANCE);
+                    n.lon() - MIN_DISTANCE,
+                    n.lat() - MIN_DISTANCE,
+                    n.lon() + MIN_DISTANCE,
+                    n.lat() + MIN_DISTANCE);
 
             // bude se node slucovat s jinym?
@@ -129,8 +129,8 @@
         LatLon ll = node.getCoor();
         BBox bbox = new BBox(
-                ll.getX() - MIN_DISTANCE_TW,
-                ll.getY() - MIN_DISTANCE_TW,
-                ll.getX() + MIN_DISTANCE_TW,
-                ll.getY() + MIN_DISTANCE_TW);
+                node.lon() - MIN_DISTANCE_TW,
+                node.lat() - MIN_DISTANCE_TW,
+                node.lon() + MIN_DISTANCE_TW,
+                node.lat() + MIN_DISTANCE_TW);
 
         // node nebyl slouceny s jinym
@@ -188,14 +188,14 @@
         while (i < way.getNodesCount()) {
             // usecka n1, n2
-            LatLon n1 = way.getNodes().get(i).getCoor();
-            LatLon n2 = way.getNodes().get((i + 1) % way.getNodesCount()).getCoor();
+            Node n1 = way.getNodes().get(i);
+            Node n2 = way.getNodes().get((i + 1) % way.getNodesCount());
             System.out.println(way.getNodes().get(i) + "-----" + way.getNodes().get((i + 1) % way.getNodesCount()));
             double minDistanceSq = MIN_DISTANCE_SQ;
             //double maxAngle = MAX_ANGLE;
             List<Node> nodes = MainApplication.getLayerManager().getEditDataSet().searchNodes(new BBox(
-                Math.min(n1.getX(), n2.getX()) - minDistanceSq,
-                Math.min(n1.getY(), n2.getY()) - minDistanceSq,
-                Math.max(n1.getX(), n2.getX()) + minDistanceSq,
-                Math.max(n1.getY(), n2.getY()) + minDistanceSq
+                Math.min(n1.lon(), n2.lon()) - minDistanceSq,
+                Math.min(n1.lat(), n2.lat()) - minDistanceSq,
+                Math.max(n1.lon(), n2.lon()) + minDistanceSq,
+                Math.max(n1.lat(), n2.lat()) + minDistanceSq
             ));
             Node nearestNode = null;
@@ -204,10 +204,9 @@
                     continue;
                 }
-                LatLon nn = nod.getCoor();
-                double dist = TracerGeometry.distanceFromSegment(nn, n1, n2);
-                double angle = TracerGeometry.angleOfLines(n1, nn, nn, n2);
+                double dist = TracerGeometry.distanceFromSegment(nod, n1, n2);
+                double angle = TracerGeometry.angleOfLines(n1, nod, nod, n2);
                 System.out.println("Angle: " + angle + " distance: " + dist + " Node: " + nod);
-                if (!n1.equalsEpsilon(nn, ILatLon.MAX_SERVER_PRECISION)
-                 && !n2.equalsEpsilon(nn, ILatLon.MAX_SERVER_PRECISION) && dist < minDistanceSq) { // && Math.abs(angle) < maxAngle) {
+                if (!n1.equalsEpsilon(nod, ILatLon.MAX_SERVER_PRECISION)
+                 && !n2.equalsEpsilon(nod, ILatLon.MAX_SERVER_PRECISION) && dist < minDistanceSq) { // && Math.abs(angle) < maxAngle) {
                     //maxAngle = angle;
                     nearestNode = nod;
Index: applications/editors/josm/plugins/tracer/src/org/openstreetmap/josm/plugins/tracer/TracerGeometry.java
===================================================================
--- applications/editors/josm/plugins/tracer/src/org/openstreetmap/josm/plugins/tracer/TracerGeometry.java	(revision 35975)
+++ applications/editors/josm/plugins/tracer/src/org/openstreetmap/josm/plugins/tracer/TracerGeometry.java	(revision 35976)
@@ -7,7 +7,10 @@
 package org.openstreetmap.josm.plugins.tracer;
 
-import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.ILatLon;
 
-public class TracerGeometry {
+public final class TracerGeometry {
+    private TracerGeometry() {
+        // Hide constructor
+    }
 
     /**
@@ -19,5 +22,5 @@
      * @return Angle in degrees.
      */
-    static public double angleOfLines(LatLon a, LatLon b, LatLon c, LatLon d) {
+    public static double angleOfLines(ILatLon a, ILatLon b, ILatLon c, ILatLon d) {
         return (Math.abs(
                     Math.atan2(a.lat() - b.lat(), a.lon() - b.lon()) -
@@ -33,13 +36,13 @@
      * @return Distance.
      */
-    static public double distanceFromSegment(LatLon c, LatLon a, LatLon b) {
+    public static double distanceFromSegment(ILatLon c, ILatLon a, ILatLon b) {
         return distanceFromSegment(
-                c.getX(), c.getY(),
-                a.getX(), a.getY(),
-                b.getX(), b.getY()
+                c.lon(), c.lat(),
+                a.lon(), a.lat(),
+                b.lon(), b.lat()
         );
     }
 
-    static private double distanceFromSegment(double cx, double cy, double ax, double ay, double bx, double by) {
+    private static double distanceFromSegment(double cx, double cy, double ax, double ay, double bx, double by) {
         double r_numerator = (cx - ax) * (bx - ax) + (cy - ay) * (by - ay);
         double r_denomenator = (bx - ax) * (bx - ax) + (by - ay) * (by - ay);
