diff --git a/src/mhtree/BuildTree.java b/src/mhtree/BuildTree.java
index 379c128967ff3644ce37bb0c7a50d04128fee64c..28912b68be72e1f8a3a771971806cd7ffea1f64b 100644
--- a/src/mhtree/BuildTree.java
+++ b/src/mhtree/BuildTree.java
@@ -125,7 +125,7 @@ class BuildTree {
                 .reduce(Float.MAX_VALUE, Math::min);
 
         Map<Node, Float> nodeToObjectDistance = Arrays.stream(nodes)
-                .collect(Collectors.toMap(node -> node, getMinHullObjectDistance));
+                .collect(Collectors.toMap(Function.identity(), getMinHullObjectDistance));
 
         // Add object to the node with minimal distance to this object
         Collections.min(nodeToObjectDistance.entrySet(), Map.Entry.comparingByValue()).getKey().addObject(object);
diff --git a/src/mhtree/InternalNode.java b/src/mhtree/InternalNode.java
index 8a6e656803543c4d1fb0234cbe22a57f8b1c8da4..4d418d464a8304e9a5d49e5cd5151d60f4640de2 100644
--- a/src/mhtree/InternalNode.java
+++ b/src/mhtree/InternalNode.java
@@ -4,10 +4,8 @@ import cz.muni.fi.disa.similarityoperators.cover.AbstractRepresentation.Precompu
 import messif.objects.LocalAbstractObject;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 public class InternalNode extends Node implements Serializable {
@@ -33,9 +31,10 @@ public class InternalNode extends Node implements Serializable {
     }
 
     public Node getNearestChild(LocalAbstractObject object) {
-        List<Float> distances = children.stream().map(child -> child.getDistance(object)).collect(Collectors.toList());
+        Map<Node, Float> nodeToObjectDistance = children.stream()
+                .collect(Collectors.toMap(Function.identity(), node -> node.getDistance(object)));
 
-        return children.get(Utils.getIndexOfMinElement(distances));
+        return Collections.min(nodeToObjectDistance.entrySet(), Map.Entry.comparingByValue()).getKey();
     }
 
     public void addObject(LocalAbstractObject object) {