diff --git a/out/production/Real Task 9/Dijkstra.class b/out/production/Real Task 9/Dijkstra.class
index 44c74406a4ee1a172803a42bd76a3646ac913702..7902d10da9f31814d6b9ae8ab5f545ebfab1c812 100644
Binary files a/out/production/Real Task 9/Dijkstra.class and b/out/production/Real Task 9/Dijkstra.class differ
diff --git a/out/production/Real Task 9/Edge.class b/out/production/Real Task 9/Edge.class
index b87b027cb979f85fa9c1d5da1bb6d1c4334d2855..ca092437a77adfd477d1ab60e8b8ad2890b36f78 100644
Binary files a/out/production/Real Task 9/Edge.class and b/out/production/Real Task 9/Edge.class differ
diff --git a/out/production/Real Task 9/Graph.class b/out/production/Real Task 9/Graph.class
index be79eb6f12801224351c14f7a6d042957711f428..9502ef068bcbf6b9a5568b292848bf07226c0b6a 100644
Binary files a/out/production/Real Task 9/Graph.class and b/out/production/Real Task 9/Graph.class differ
diff --git a/out/production/Real Task 9/ListOfPlaces.class b/out/production/Real Task 9/ListOfPlaces.class
index 2e8b52e182dc7376d4069334d2425dd92984abe8..fde9efb0c2466b0a085a4bcd55ea3a3ce289b71a 100644
Binary files a/out/production/Real Task 9/ListOfPlaces.class and b/out/production/Real Task 9/ListOfPlaces.class differ
diff --git a/out/production/Real Task 9/Node.class b/out/production/Real Task 9/Node.class
index 8090d598ae54a197cd55bb339b5b86116ca854b8..c1f8ebb191fe8a9955c8c03781260046bf884380 100644
Binary files a/out/production/Real Task 9/Node.class and b/out/production/Real Task 9/Node.class differ
diff --git a/out/production/Real Task 9/Task9.class b/out/production/Real Task 9/Task9.class
index e231b157e5e4b5d2d1c250e4db44dd428bbe56cf..c55c22f84e75ea90b8ca31e2950af97ddccc1c13 100644
Binary files a/out/production/Real Task 9/Task9.class and b/out/production/Real Task 9/Task9.class differ
diff --git a/out/production/Real Task 9/Utils.class b/out/production/Real Task 9/Utils.class
index cde6d7e51e8398ecb1dd4c37be2fa71631884c21..9c0d2eba1043b6ecb1c7f69588aa8d5613e23a7e 100644
Binary files a/out/production/Real Task 9/Utils.class and b/out/production/Real Task 9/Utils.class differ
diff --git a/src/Task9.java b/src/Task9.java
index 58d3477facbcf67b6ee27031c2262b8cb1e441cd..073c4fbb21154693ca3958a81114b081e98e1b9c 100644
--- a/src/Task9.java
+++ b/src/Task9.java
@@ -18,7 +18,11 @@ public class Task9 {
       System.out.println(node.getLatitude() + "," +  node.getLongitude());
     }*/
     g.loadInterestPoints("interessepktIceland.txt");
-    g.printInterestPoints();
+    Map<Integer,Integer> list = Dijkstra.getListOfPlaces(g,0,8,(short) 2).getPlaceList();
+    list.forEach((number, integer) -> {
+      Node node = g.getNode(number);
+      System.out.println(node.getName() +" : "+node.getLatitude()+","+node.getLongitude()+" Driving time: " + integer );
+    });
   }
 }
 class Node{
@@ -162,9 +166,7 @@ class Graph{
     List<String> data = Utils.readFile(inFile);
     for (int i = 1; i < data.size(); ++i) {
       String[] splitText = Utils.dividedText(data.get(i), 3);
-      Node node = getNode(Integer.parseInt(splitText[0]));
-      node.setType(Short.parseShort(splitText[1]));
-      node.setName(splitText[2]);
+      this.setTypes(Integer.parseInt(splitText[0]),Short.parseShort(splitText[1]),splitText[2]);
     }
     System.out.println("Interest points loaded.");
   }
@@ -182,7 +184,7 @@ class Graph{
     System.out.println(sb.toString());
   }
 
-  private void setTypes(int nodeNumber,int typeValue, String name){
+  private void setTypes(int nodeNumber,short typeValue, String name){
     Node node = this.getNode(nodeNumber);
 
     if((typeValue&1) ==1) node.setType((short) 1);
@@ -257,7 +259,7 @@ class Dijkstra{
         Node node = graph.getNode(nextNode);
         if (node.getName() != null){
           if(node.isTypeOf(type)){
-            listOfPlaces.addPlace(node,currentSum);
+            listOfPlaces.addPlace(node.getNumber(),currentSum);
           }
         }
       }
@@ -328,43 +330,47 @@ class Dijkstra{
 }
 
 class ListOfPlaces{
-  private final Map<Node, Integer> placeList = new HashMap<>();
+  private final Map<Integer, Integer> placeList = new HashMap<>();
   int maxDriveTime = 0;
   private final int maxSize;
+  int numberOfFarthestNode = -1;
 
   public ListOfPlaces(int maxSize){
     this.maxSize = maxSize;
   }
 
-  public void addPlace(Node node, int driveTime){
+  public void addPlace(int nodeNumber, int driveTime){
     if(placeList.size()<this.maxSize){
-      placeList.put(node,driveTime);
-      if(driveTime> this.maxDriveTime) this.maxDriveTime = driveTime;
+      placeList.put(nodeNumber,driveTime);
+      if(driveTime> this.maxDriveTime){
+        this.maxDriveTime = driveTime;
+        this.numberOfFarthestNode = nodeNumber;
+      }
     }
     else{
-      fixPlaceList(node,driveTime);
+      fixPlaceList(nodeNumber,driveTime);
     }
   }
 
-  private void fixPlaceList(Node node, int driveTime){
-    if (placeList.containsKey(node) && placeList.get(node)<driveTime){
-      placeList.put(node,driveTime);
+  private void fixPlaceList(int nodeNumber, int driveTime){
+    if (placeList.containsKey(nodeNumber) && placeList.get(nodeNumber)<driveTime){
+      placeList.replace(nodeNumber,driveTime);
     }
-    else{
-      Node testNode;
-      int testDriveTime;
-      Node[] nodeList = (Node[]) placeList.keySet().toArray();
-      for(int i = 0; i<maxSize;i++){
-        if(placeList.get(nodeList[i])<driveTime){
-          testNode = nodeList[i];
-          testDriveTime = placeList.get(nodeList[i]);
-          placeList.remove(testNode);
-          placeList.put(node,driveTime);
-          fixPlaceList(testNode,testDriveTime);
+    else if(driveTime<maxDriveTime){
+      placeList.remove(numberOfFarthestNode);
+      placeList.put(nodeNumber,driveTime);
+      int max = 0;
+      placeList.forEach((integer, integer2) -> {
+        if(integer2>max){
+          maxDriveTime=integer2;
+          numberOfFarthestNode =integer;
         }
-      }
+      });
     }
   }
+  public Map<Integer,Integer> getPlaceList(){
+    return placeList;
+  }
 }