diff --git a/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitor.java b/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitor.java
index faee3525fa01140f637030667bc67c8ebf9d44dc..7538144f0bce7c8060f77dd6afb2d77e862ceae0 100644
--- a/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitor.java
+++ b/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitor.java
@@ -1,7 +1,7 @@
 package cz.fidentis.analyst.visitors.mesh;
 
 import cz.fidentis.analyst.mesh.MeshVisitor;
-import cz.fidentis.analyst.kdtree.KdTreeImpl;
+import cz.fidentis.analyst.kdtree.KdTree;
 
 import cz.fidentis.analyst.mesh.core.MeshFacet;
 
@@ -28,8 +28,8 @@ public class KdTreeBuildVisitor implements MeshVisitor {
      *
      * @return k-d tree
      */
-    public KdTreeImpl getKdTree() {
-        return new KdTreeImpl(facets);
+    public KdTree getKdTree() {
+        return new KdTree(facets);
     }
     
 }
diff --git a/Comparison/src/test/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitorTest.java b/Comparison/src/test/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitorTest.java
index 1d161e7b153755a16f257eaba43a7f45b3e11768..97c6c24cc7a20e00aa19008898e57b07b06bad70 100644
--- a/Comparison/src/test/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitorTest.java
+++ b/Comparison/src/test/java/cz/fidentis/analyst/visitors/mesh/KdTreeBuildVisitorTest.java
@@ -3,7 +3,7 @@ package cz.fidentis.analyst.visitors.mesh;
 import cz.fidentis.analyst.kdtree.KdNode;
 import cz.fidentis.analyst.mesh.core.*;
 import cz.fidentis.analyst.mesh.io.MeshObjLoader;
-import cz.fidentis.analyst.kdtree.KdTreeImpl;
+import cz.fidentis.analyst.kdtree.KdTree;
 import org.junit.jupiter.api.Test;
 import java.io.File;
 import java.io.IOException;
@@ -34,7 +34,7 @@ public class KdTreeBuildVisitorTest {
         Random r = new Random();
 
         MeshPoint p = points.get(r.nextInt(points.size()));
-        KdTreeImpl tree= visitor.getKdTree();
+        KdTree tree= visitor.getKdTree();
         
         KdNode node = tree.closestNode(p);
         assertNotNull(node);
@@ -64,7 +64,7 @@ public class KdTreeBuildVisitorTest {
         Random r = new Random();
 
         MeshPoint p = points.get(r.nextInt(points.size()));
-        KdTreeImpl tree= visitor.getKdTree();
+        KdTree tree= visitor.getKdTree();
 
         //System.out.println(tree);
 
diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/kdtree/KdTreeImpl.java b/MeshModel/src/main/java/cz/fidentis/analyst/kdtree/KdTree.java
similarity index 98%
rename from MeshModel/src/main/java/cz/fidentis/analyst/kdtree/KdTreeImpl.java
rename to MeshModel/src/main/java/cz/fidentis/analyst/kdtree/KdTree.java
index dbffe004120e42d8d0d62dbf8a8efabd9e2b7e45..36c0e2c2ff9700b227704e0707f1d2621790399e 100644
--- a/MeshModel/src/main/java/cz/fidentis/analyst/kdtree/KdTreeImpl.java
+++ b/MeshModel/src/main/java/cz/fidentis/analyst/kdtree/KdTree.java
@@ -23,7 +23,7 @@ import javax.vecmath.Vector3d;
  *
  * @author Maria Kocurekova
  */
-public class KdTreeImpl {
+public class KdTree {
     private KdNode root;
     
     /**
@@ -33,7 +33,7 @@ public class KdTreeImpl {
      * If no mesh points are provided, then an empty 
      * KD-tree is constructed (with the root node set to null).
      */
-    public KdTreeImpl(Set<MeshPoint> points) {
+    public KdTree(Set<MeshPoint> points) {
         if(points == null) {
             this.root = null;
             return;
@@ -51,7 +51,7 @@ public class KdTreeImpl {
      *
      * @param facet Mesh facet
      */
-    public KdTreeImpl(MeshFacet facet) {
+    public KdTree(MeshFacet facet) {
         this(new LinkedList<>(Collections.singleton(facet)));
     }
 
@@ -63,7 +63,7 @@ public class KdTreeImpl {
      *
      * @param facets The list of mesh facets to be stored. Facets can share vertices.
      */
-    public KdTreeImpl(List<MeshFacet> facets) {
+    public KdTree(List<MeshFacet> facets) {
         if(facets == null ||  facets.isEmpty() || facets.get(0).getVertices().isEmpty() ){
             this.root = null;
             return;
diff --git a/MeshModel/src/test/java/cz/fidentis/analyst/mesh/kdtree/KdTreeTest.java b/MeshModel/src/test/java/cz/fidentis/analyst/mesh/kdtree/KdTreeTest.java
index 3ad833bc5af3aa23df9b0774eb7ecf018ea49509..628e7c70b757f06503377b8d58057e1e9e4c9bee 100644
--- a/MeshModel/src/test/java/cz/fidentis/analyst/mesh/kdtree/KdTreeTest.java
+++ b/MeshModel/src/test/java/cz/fidentis/analyst/mesh/kdtree/KdTreeTest.java
@@ -1,6 +1,6 @@
 package cz.fidentis.analyst.mesh.kdtree;
 import cz.fidentis.analyst.kdtree.KdNode;
-import cz.fidentis.analyst.kdtree.KdTreeImpl;
+import cz.fidentis.analyst.kdtree.KdTree;
 import cz.fidentis.analyst.mesh.core.MeshFacet;
 import cz.fidentis.analyst.mesh.core.MeshFacetImpl;
 import cz.fidentis.analyst.mesh.core.MeshPoint;
@@ -32,7 +32,7 @@ public class KdTreeTest {
         MeshFacet facet = new MeshFacetImpl();
         facet.addVertex(p);
         facets.add(facet);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
         
         //System.out.println("AAA"+tree);
 
@@ -44,7 +44,7 @@ public class KdTreeTest {
         MeshPoint p = new MeshPointImpl(position,normalAndTextCoord,normalAndTextCoord);
 
         List<MeshFacet> facets2 = new LinkedList<>();
-        KdTreeImpl tree = new KdTreeImpl(facets2);
+        KdTree tree = new KdTree(facets2);
 
         assertFalse(tree.containsPoint(p));
     }
@@ -90,7 +90,7 @@ public class KdTreeTest {
             facet.addVertex(new MeshPointImpl(positionOfPoints, normalAndTextCoord, normalAndTextCoord));
         }
         facets.add(facet);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
 
         Random r = new Random();
 
@@ -121,7 +121,7 @@ public class KdTreeTest {
         }
         facets.add(facet1);
         facets.add(facet2);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
 
         Random r = new Random();
 
@@ -152,7 +152,7 @@ public class KdTreeTest {
         }
         facets.add(facet1);
         facets.add(facet2);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
 
         Random r = new Random();
 
@@ -188,7 +188,7 @@ public class KdTreeTest {
 
         facets.add(facet1);
         facets.add(facet2);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
 
         MeshPoint p = new MeshPointImpl(new Vector3d(2.5f, 0.3f, 1.2f), normalAndTextCoord,normalAndTextCoord);
         KdNode node = tree.closestNode(p);
@@ -224,7 +224,7 @@ public class KdTreeTest {
 
         facets.add(facet1);
         facets.add(facet2);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
 
         Random r = new Random();
 
@@ -263,7 +263,7 @@ public class KdTreeTest {
 
         facets.add(facet1);
         facets.add(facet2);
-        KdTreeImpl tree = new KdTreeImpl(facets);
+        KdTree tree = new KdTree(facets);
 
         Random r = new Random();
 
@@ -298,7 +298,7 @@ public class KdTreeTest {
             facet1.addVertex(new MeshPointImpl(positionOfPoints, normalAndTextCoord, normalAndTextCoord));
         }
 
-        KdTreeImpl tree = new KdTreeImpl(facet1);
+        KdTree tree = new KdTree(facet1);
 
         Random r = new Random();
 
@@ -324,7 +324,7 @@ public class KdTreeTest {
             pointsList.add(new MeshPointImpl(positionOfPoints, normalAndTextCoord, normalAndTextCoord));
         }
 
-        KdTreeImpl tree = new KdTreeImpl(points);
+        KdTree tree = new KdTree(points);
 
         Random r = new Random();
         MeshPoint p = pointsList.get(r.nextInt(points.size()));