diff --git a/src/main/java/azgracompress/kdtree/KDTree.java b/src/main/java/azgracompress/kdtree/KDTree.java
index 04ab7fc340dee6384e44160a8439334276c2bb49..4c286de39ad05ab2184bbb624885a46f7868a542 100644
--- a/src/main/java/azgracompress/kdtree/KDTree.java
+++ b/src/main/java/azgracompress/kdtree/KDTree.java
@@ -22,30 +22,30 @@ public class KDTree {
 
     public static class BBFSearchInfo {
         private final int[][] featureVectors;
-        private double nearestRecordDistance;
-        private int[] nearestRecord;
+        private double nearestVectorDistance;
+        private int nearestVectorIndex;
 
         public BBFSearchInfo(final int[][] featureVectors) {
             this.featureVectors = featureVectors;
-            nearestRecord = null;
-            nearestRecordDistance = Double.POSITIVE_INFINITY;
+            nearestVectorIndex = -1;
+            nearestVectorDistance = Double.POSITIVE_INFINITY;
         }
 
         public int[][] getFeatureVectors() {
             return featureVectors;
         }
 
-        public double getNearestRecordDistance() {
-            return nearestRecordDistance;
+        public double getNearestVectorDistance() {
+            return nearestVectorDistance;
         }
 
-        public int[] getNearestRecord() {
-            return nearestRecord;
+        public int getNearestVectorIndex() {
+            return nearestVectorIndex;
         }
 
-        public void setNearestRecord(final int[] record, final double recordDistance) {
-            this.nearestRecord = record;
-            this.nearestRecordDistance = recordDistance;
+        public void setNearestRecord(final int vectorIndex, final double recordDistance) {
+            this.nearestVectorIndex = vectorIndex;
+            this.nearestVectorDistance = recordDistance;
         }
     }
 
@@ -85,7 +85,7 @@ public class KDTree {
         this.terminalNodeCount = terminalNodeCount;
     }
 
-    public int[] findNearestBBF(final int[] queryVector, final int maxE) {
+    public int findNearestBBF(final int[] queryVector, final int maxE) {
 
         PriorityQueue<NodeWithDistance> priorityQueue = new PriorityQueue<>();
         priorityQueue.add(new NodeWithDistance(root, 0.0));
@@ -114,7 +114,7 @@ public class KDTree {
                 }
             }
         }
-        return searchInfo.getNearestRecord();
+        return searchInfo.getNearestVectorIndex();
     }
 
     public int getTotalNodeCount() {
diff --git a/src/main/java/azgracompress/kdtree/TerminalKDNode.java b/src/main/java/azgracompress/kdtree/TerminalKDNode.java
index 8ba4fc76c817585dd929c9e6a60ab20fe89ab706..0dac9c49a343d8f2927e9e8411c4372322fd285d 100644
--- a/src/main/java/azgracompress/kdtree/TerminalKDNode.java
+++ b/src/main/java/azgracompress/kdtree/TerminalKDNode.java
@@ -24,8 +24,8 @@ public class TerminalKDNode extends KDNode {
         double recordDistance;
         for (final int index : bucketIndices) {
             recordDistance = Utils.calculateEuclideanDistance(queryRecord, searchInfo.getFeatureVectors()[index]);
-            if (recordDistance < searchInfo.getNearestRecordDistance()) {
-                searchInfo.setNearestRecord(searchInfo.getFeatureVectors()[index], recordDistance);
+            if (recordDistance < searchInfo.getNearestVectorDistance()) {
+                searchInfo.setNearestRecord(index, recordDistance);
             }
         }
     }