diff --git a/src/mhtree/LeafNode.java b/src/mhtree/LeafNode.java
index 66d41e1bcba9644313bb4b570133df958617e2d1..1415df492d950ff47f7de0e371cbbd7ac50ed2bc 100644
--- a/src/mhtree/LeafNode.java
+++ b/src/mhtree/LeafNode.java
@@ -12,7 +12,8 @@ import java.util.List;
 /**
  * Represents a leaf node in MH-Tree.
  */
-class LeafNode extends Node implements Serializable {
+
+public class LeafNode extends Node implements Serializable {
 
     /**
      * Serialization ID
@@ -52,7 +53,7 @@ class LeafNode extends Node implements Serializable {
      *
      * @return a list of objects in node's bucket
      */
-    protected List<LocalAbstractObject> getObjects() {
+    public List<LocalAbstractObject> getObjects() {
         List<LocalAbstractObject> objects = new ArrayList<>(bucket.getObjectCount());
 
         bucket
diff --git a/src/mhtree/MHTree.java b/src/mhtree/MHTree.java
index 9ec88c077f9aa85b1a097c7c122707c3d9008092..1ab345e42ffd1736b06683d3c19e9780a3426751 100644
--- a/src/mhtree/MHTree.java
+++ b/src/mhtree/MHTree.java
@@ -105,13 +105,9 @@ public class MHTree extends Algorithm implements Serializable {
         operation.endOperation();
     }
 
-    private boolean isPrunable(Node child, LocalAbstractObject queryObject, ApproxKNNQueryOperation operation) {
-        return operation.getAnswerDistance() < child.getDistanceToNearest(queryObject);
-    }
-
-    public void kNN(KNNQueryOperation knnQueryOperation) {
-        root.getObjects().forEach(knnQueryOperation::addToAnswer);
-        knnQueryOperation.endOperation();
+    public void kNN(KNNQueryOperation operation) {
+        root.getObjects().forEach(operation::addToAnswer);
+        operation.endOperation();
     }
 
     public int getObjectCount() {
@@ -151,7 +147,7 @@ public class MHTree extends Algorithm implements Serializable {
      *
      * @return a list of leaf nodes
      */
-    private List<LeafNode> getLeafNodes() {
+    public List<LeafNode> getLeafNodes() {
         List<LeafNode> leafNodes = new ArrayList<>();
         root.gatherLeafNodes(leafNodes);
         return leafNodes;
@@ -206,6 +202,10 @@ public class MHTree extends Algorithm implements Serializable {
                 '}';
     }
 
+    private boolean isPrunable(Node child, LocalAbstractObject queryObject, ApproxKNNQueryOperation operation) {
+        return operation.getAnswerDistance() < child.getDistanceToNearest(queryObject);
+    }
+
     public static class Builder {
 
         /**