diff --git a/generateGraph-new.py b/generateGraph-new.py
index 689f64c476b1b049000a04dac812daa068146b4c..849f1464f73a056d863fa1631e7942622866936c 100644
--- a/generateGraph-new.py
+++ b/generateGraph-new.py
@@ -1,5 +1,4 @@
-#Accidentally uploaded old code and left computer with newest code at home!!!! 
-#This is quite old! It only computes a path, but doesn't distingusih between guards and resets
+#NEW VERSION OF CODE WHICH ANALYZES PATHS AND COLLECTS VARAIBLES ALONG THE WAY
 
 import clang.cindex
 import typing
@@ -296,6 +295,7 @@ def traverse_tree(node, guards, resets, indent,hasIfParent):
     #    return [guards,resets]
     #if (node.kind == clang.cindex.CursorKind.RETURN_STMT):
     #    return [guards, resets]
+    #elseifstatement = False
     for i in node.get_children():
         if i.kind == clang.cindex.CursorKind.IF_STMT: #TODO: add else statements
             temp_results = traverse_tree(i, guards, resets, indent+ "-", True)
@@ -310,8 +310,9 @@ def traverse_tree(node, guards, resets, indent,hasIfParent):
             if hasIfParent:
                 if node.kind == clang.cindex.CursorKind.IF_STMT and i.kind != clang.cindex.CursorKind.COMPOUND_STMT:
                     childrens_guards.append(code_from_cursor(i))
-                    print(indent + "Guard statement")
-                    print(code_from_cursor(i))
+                    #print(indent + "Guard statement")
+                    #print(code_from_cursor(i))
+                    #print(get_info(i))
                     #found.append(code_from_cursor(i))
                     #temp_results = traverse_tree(i, guard_copy, reset_copy, indent+ "-", hasIfParent)
                     #for result in temp_results:
@@ -321,8 +322,8 @@ def traverse_tree(node, guards, resets, indent,hasIfParent):
                     #    result.append([code_from_cursor(i)])
                     #    print("foo")
                 if node.kind == clang.cindex.CursorKind.COMPOUND_STMT and i.kind != clang.cindex.CursorKind.DECL_STMT:
-                    print(indent + "Reset statement")
-                    print(code_from_cursor(i))
+                    #print(indent + "Reset statement")
+                    #print(code_from_cursor(i))
                     childrens_resets.append(code_from_cursor(i))
                     #found.append(code_from_cursor(i))
                     #temp_results = traverse_tree(i, guard_copy, reset_copy, indent+ "-", hasIfParent)
@@ -338,20 +339,7 @@ def traverse_tree(node, guards, resets, indent,hasIfParent):
                  found.append(item)
             #childrens_guards.append(results[0])
             #childrens_resets.append(results[1])
-    #print(results)
-    #output = []
-    #if len(results) < 0:
-    #    input = []
-    #    input.append(childrens_results)
-    #    input.append(childrens_guards)
-    #    output.append(input)
-    #else:
-    #    for result in results:
-    #        result.append(childrens_resets)
-    #        result.append(childrens_guards)
-    #        output.append(result)
-    #print(output)
-    #ASSUMPTION: lowest level is a reset!!!
+    #if my parent is an if statement and i'm and else if statement, I want to add the negation of my parent, not myself
     if len(found) == 0 and len(childrens_resets) > 0:
         found.append([])
     for item in found:
@@ -381,23 +369,24 @@ def get_next_state(code):
     return state.strip()
 
 
-#TODO: consider or??
-def pretty_guards(code):
-    line = code[0]
-    conditional = line.strip('if').strip('{')
-    conditions = conditional.split('&&')
-    output = "And"
-    for condition in conditions: 
-        output += condition.strip() + ","
-    output = output.strip(",")
+#TODO: And( , )
+def pretty_guards(guards):
+    output = ""
+    first = True
+    for condition in guards: 
+        #print(type(condition))
+        if first:
+            output+= condition[0]
+        else:
+            output = "And(" + condition[0] + ",(" + output + "))"
+        first = False
     return output
 
-#assumption: last two lines of code are reset and bracket... not idea
-def pretty_resets(code):
+#assumption: reset;reset;reset
+def pretty_resets(resets):
     outstring = ""
-    for index in range(0,len(code)):
-       if index != 0 and index != len(code)-1 and index != len(code)-2:
-        outstring += code[index].strip().strip('\n')
+    for reset in resets:
+       outstring+=reset[0] + ';'
     return outstring.strip(';')
 
 
@@ -443,15 +432,33 @@ counter = 0
 for path in paths:
     vertices.append(str(counter))
     counter += 1
-
+    print(path)
 output_dict['vertex'] = vertices
 
 
+
+
 #traverse outter if statements and find inner statements
 edges = []
 guards = []
 resets = []
 
+counter = 0
+for path in paths:
+    guard = []
+    reset = []
+    for item in path:
+        if item[1] == 'g':
+            guard.append(item[0])
+        elif item[1] == 'r':
+            reset.append(item[0])
+    #create an edge from all other nodes to me
+    for vertex in vertices:
+        edges.append([vertex, str(counter)])
+        guards.append(pretty_guards(guard))
+        resets.append(pretty_resets(reset))
+    counter+= 1
+
 #add edge, transition(guards) and resets
 output_dict['edge'] = edges
 output_dict['guards'] = guards