diff --git a/ov9/program1.py b/ov9/program1.py
index 4580ad2e1207933552edddb3c24dd556920393a3..591198a5f4b0eb43e35e001043a4df29fba901f0 100644
--- a/ov9/program1.py
+++ b/ov9/program1.py
@@ -78,28 +78,8 @@ def init_table():
     for i in range(num_of_nodes):
         res_arr.append(results(i, max_num.time+1, False, False, None))
 
-
-
 print('prep done, files loaded to lists')
 
-# def rec_func(node, counter, global_fra, end_switch):
-#     if not end_switch:
-#         counter += node.time
-#         if node.node == global_fra:
-#             return counter
-#         else:
-#             node = [a for a in res_arr if a.node == node.prev][0]
-#             return rec_func(node, counter, global_fra, end_switch)
-#     elif end_switch:
-#         counter += node.time
-#         path.append(node.node)
-#         if node.node == global_fra:
-#             return counter, path
-#         else:
-#             node = [a for a in res_arr if a.node == node.prev][0]
-#             return rec_func(node, counter, global_fra, end_switch)
-
-
 def rec_func2(node, global_fra):
     path=[]
     while node.node != global_fra:
@@ -109,86 +89,72 @@ def rec_func2(node, global_fra):
     return path
 
 
-
-# def calculate_shortest_path(current_node, time, current_neighbour, slutt):
-#     count_a = 0
-#     count_a, _ = rec_func2(current_neighbour, count_a, slutt)
-#     count_b = 0
-#     count_b, _ = rec_func2(current_node, count_b, slutt)
-#     count_b += time
-#     if count_b < count_a:
-#         return True
-#     else: 
-#         return False
-
-
-
-# def update_que(que):
-#     tmp_arr = [a for a in res_arr if a.node in que]
-#     tmp_arr.sort(key=lambda x: x.total_time, reverse=True)
-#     que = [a.node for a in tmp_arr if a in tmp_arr]
-#     return que
-
-
-
 end_que = PriorityQueue()
 queue = PriorityQueue()
 we_soon_to_be_done = False
 def dijkstras(slutt, start):
     global we_soon_to_be_done
     global queue
-    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]
-    else:
-        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]
-    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:
-                    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:
+    node_count= 0
+    while queue or not end_que.empty: 
+        node_count +=1 
+        if node_count % 100 == 0:
+            print(node_count)
+        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]
+        else:
+            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:
+                        current_node.visited = True
+                        current_node.in_que = False
+                        we_soon_to_be_done = True
                         end_que.put(tmp_edge.til)
                     else:
-                        current_neighbour.in_que = True 
-                        queue.put(current_neighbour.total_time)
-
-            elif current_neighbour.node != start:
-                if current_node.total_time + tmp_edge.time < current_neighbour.total_time:
-                    index_in_que = queue.queue.index(current_neighbour.total_time)
-                    current_neighbour.total_time = tmp_edge.time + current_node.total_time
-                    current_neighbour.prev = current_node.node
-                    queue.queue[index_in_que] = current_neighbour.total_time
-        
-    if we_soon_to_be_done and end_que.empty(): 
-        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)
-        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)
-        exit()
-    else:
-        if we_soon_to_be_done:
-            current_node.visited = True
-            current_node.in_que = False
-            dijkstras(slutt,start)
+                        if tmp_edge.fra == slutt:
+                            end_que.put(tmp_edge.til)
+                        else:
+                            current_neighbour.in_que = True 
+                            queue.put(current_neighbour.total_time)
+                           
+                elif current_neighbour.node != start:
+                    if current_node.total_time + tmp_edge.time < current_neighbour.total_time:
+                        old_time = current_neighbour.total_time
+                        current_neighbour.total_time = tmp_edge.time + current_node.total_time
+                        current_neighbour.prev = current_node.node
+                        if old_time in queue.queue:
+                            index_in_que = queue.queue.index(old_time)
+                            queue.queue[index_in_que] = current_neighbour.total_time
+            
+        if we_soon_to_be_done and end_que.empty(): 
+            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)
+            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)
+            break 
         else:
-            current_node.visited = True
-            current_node.in_que = False
-            #queue = update_que(queue)  
-            dijkstras(slutt,start)
+            if we_soon_to_be_done:
+                current_node.visited = True
+                current_node.in_que = False
+            else:
+                current_node.visited = True
+                current_node.in_que = False
              
 
 
@@ -198,7 +164,7 @@ def init_things():
         if sys.argv[1] == '-d':
             #node_id
             start = 20
-            slutt = 30
+            slutt = 400
             init_table()
             queue.put(0)
             start_node = next(a for a in res_arr if a.node == start)