diff --git a/ov9/program1.py b/ov9/program1.py
index 6121084da964838b4f05e15ee68bb2e14cdbbe90..ade277aff1e93e274f158afb0e29d93f41c5ed97 100644
--- a/ov9/program1.py
+++ b/ov9/program1.py
@@ -1,6 +1,6 @@
 import sys
 from queue import PriorityQueue
-
+import timeit 
 
 class int_points (object):
     def __init__(self, id, type, name):
@@ -32,45 +32,51 @@ class results(object):
 
 
 #prep nodes
-with open('./test_files/noder.txt.1','r') as file:
-    node_file = file.read()
-
-node_file = node_file.split()
-num_of_nodes = int(node_file[0])
-node_file.pop(0)
-
 node_arr = []
-for i in range(0, len(node_file), 3):
-    #nodenr breddegrad lengdegrad
-    node_arr.append(nodes(int(node_file[i]), float(node_file[i+1]), float(node_file[i+2])))
+start = timeit.default_timer()
+with open('./noder.txt','r') as file:
+    for i in file:
+        i = i.split()
+        if len(i) == 1:
+            num_of_nodes = int(i[0])
+        else:
+            node_arr.append(nodes(int(i[0]), float(i[1]), float(i[2])))
 
-#prep edges
-with open('./test_files/kanter.txt.1','r') as file:
-    edge_file = file.read()
+slutt = timeit.default_timer()
+print('nodes loaded correct in: ', slutt - start)
 
-edge_file = edge_file.split()
-num_of_edges = int(edge_file[0])
-edge_file.pop(0)
 
 edge_arr = []
-for i in range(0, len(edge_file), 5):
-    #franode tilnode kjøretid lengde fartsgrense
-    edge_arr.append(edges(int(edge_file[i]), int(edge_file[i+1]), int(edge_file[i+2]), int(edge_file[i+3]), int(edge_file[i+4])))
-
-#prep intresting 
-with open('./test_files/interessepkt.txt.1','r') as file:
-    intresting_file = file.read()
+#prep edges
+start = timeit.default_timer()
+with open('./kanter.txt','r') as file:
+    for i in file:
+        i = i.split()
+        if len(i) == 1:
+            num_of_edges= int(i[0])
+        else: 
+            edge_arr.append(edges(int(i[0]), int(i[1]), int(i[2]), int(i[3]), int(i[4])))
+           
+slutt = timeit.default_timer()
+print('edges loaded correct in: ', slutt - start)
 
-intresting_file = intresting_file.split('\n')
-num_of_intresting = int(intresting_file[0])
-intresting_file.pop(0)
 
+#prep intresting 
 intresting_arr = []
-for i in range(len(intresting_file)):
-    #nodenr kode "Navn på stedet"
-    tmp_values = intresting_file[i].split()
-    intresting_arr.append(int_points(int(tmp_values[0]), int(tmp_values[1]), ' '.join(tmp_values[2:])))
-
+start = timeit.default_timer()
+with open('./interessepkt.txt','r') as file:
+    for i in file:
+        i = i.split()
+        if len(i) == 1:
+            num_of_intresting= int(i[0])
+        else: 
+            try:
+                intresting_arr.append(int_points(int(i[0]), int(i[1]), ' '.join(i[2:])))
+            except:
+                print(i)
+                exit()
+slutt = timeit.default_timer()
+print('int_points loaded correct in: ', slutt - start)
 
 max_num = max(edge_arr,key=lambda item:item.time)
 res_arr = []
@@ -88,18 +94,27 @@ def rec_func2(node, global_fra):
     path.append(node.node)
     return path
 
+def find_bensin(arr):
+    with open('./bensin.csv', 'w') as file:
+        print('bensin to be found on disse benserne: ')
+        for u in arr:
+            a = next(a for a in node_arr if str(a.node) == str(u.id))
+            print(u.name)
+            file.write(f'{a.bredde},{a.lengde}\n')
+    return
 
 end_que = PriorityQueue()
 queue = PriorityQueue()
 we_soon_to_be_done = False
-def dijkstras(slutt, start):
+def dijkstras(slutt, start, bensin):
     global we_soon_to_be_done
     global queue
     node_count= 0
+    bensin_arr = []
     while queue or not end_que.empty: 
         node_count +=1 
-        if node_count % 100 == 0:
-            print(node_count)
+        if node_count % (num_of_nodes//100) == 0:
+            print(f'searched {node_count/(num_of_nodes//100)}% of nodes')
         if we_soon_to_be_done:
             tmp_que_item = end_que.get()
             current_node = [b for b in res_arr if b.node == tmp_que_item][0]
@@ -107,21 +122,28 @@ def dijkstras(slutt, start):
             tmp_que_item = queue.get()
             current_node = [b for b in res_arr if b.total_time == tmp_que_item and b.in_que][0]
 
-        if current_node.total_time == 422488:
-            print('ye', node_count)
         for tmp_edge in edge_arr:
             if tmp_edge.fra == current_node.node:
                 current_neighbour = [a for a in res_arr if a.node == tmp_edge.til][0]
                 if not current_neighbour.visited and not current_neighbour.in_que:
                     current_neighbour.total_time = current_node.total_time + tmp_edge.time
                     current_neighbour.prev = current_node.node
-                    if tmp_edge.til == slutt:
+                    if bensin:
+                        a = next((a for a in intresting_arr if a.id == current_neighbour.node), -1)
+                        if a != -1:
+                            if a.type == 2:
+                                print(f'en benser er funnet: {a.name}')
+                                bensin_arr.append(a)
+                                if len(bensin_arr) >= 10:
+                                    find_bensin(bensin_arr)
+                                    break 
+                    if tmp_edge.til == slutt and not bensin:
                         current_node.visited = True
                         current_node.in_que = False
                         we_soon_to_be_done = True
                         end_que.put(tmp_edge.til)
                     else:
-                        if tmp_edge.fra == slutt:
+                        if tmp_edge.fra == slutt and not bensin:
                             end_que.put(tmp_edge.til)
                         else:
                             current_neighbour.in_que = True 
@@ -140,13 +162,17 @@ def dijkstras(slutt, start):
             print('Done mapping, calcualting result')
             end_node = [b for b in res_arr if b.node == slutt][0]
             travel_arr = rec_func2(end_node, start)
-            travel_arr = reversed(travel_arr)
+            travel_arr = list(reversed(travel_arr))
             print(f'total time: {end_node.total_time}\nshortest path: {"->".join(str(v) for v in travel_arr)}')
             count = 0
             for i in res_arr:
                 if i.total_time != max_num.time +1:
                     count +=1 
             print('total nodes added to map: ', count)
+            with open('./path.csv', 'w') as file:
+                for noob in travel_arr:
+                    a = next(a for a in node_arr if str(a.node) == str(noob))
+                    file.write(f'{a.bredde},{a.lengde}\n')
             break 
         else:
             if we_soon_to_be_done:
@@ -163,14 +189,25 @@ def init_things():
     if len(sys.argv) > 1:
         if sys.argv[1] == '-d':
             #node_id
-            start = 6368906
-            slutt = 6789998
+            start = 20
+            slutt = 400
             init_table()
             queue.put(0)
             start_node = next(a for a in res_arr if a.node == start)
             start_node.total_time = 0
             start_node.in_que = True
-            dijkstras(slutt, start)
+            if len(sys.argv) > 2:
+                if sys.argv[2] == '-b':
+                    print('les go bensin')
+                    start = timeit.default_timer()
+                    dijkstras(slutt, start, True)
+                    slutt = timeit.default_timer()
+                    print(f'total time for locating bensin is: {slutt-start}')
+            else: 
+                start = timeit.default_timer()
+                dijkstras(slutt, start, False)
+                slutt = timeit.default_timer()
+                print(f'total time for locating path is: {slutt-start}')
         elif sys.argv[1] == '-a':
             print('A* not yet implemented')
         else: