diff --git a/info4/kapitel-8/Interpreter/interpreter.py b/info4/kapitel-8/Interpreter/interpreter.py
index cf74b13d5c9b890f42683331cf9e29fc8cfa3a08..b63bf3ac0b8271cc678e1999fb42ee171b3335ed 100644
--- a/info4/kapitel-8/Interpreter/interpreter.py
+++ b/info4/kapitel-8/Interpreter/interpreter.py
@@ -38,40 +38,36 @@ class ErrorHandler:
     def handle_break(self):
         print("BREAK in Zeile " + str(self.line_number))
         print("Aktueller Zustand:")
-        for k,v in values.items():
+        for k, v in values.items():
             print("Variable " + k + ": " + str(v))
         user_input = input("Drücke ENTER zum Fotfahren oder schreibe EXIT zum Beenden:")
         if user_input.lower() == 'exit':
             raise KeyboardInterrupt
 
 
-def process_assignment(value_list, forbidden_identifiers, identifier_token_1):
+def process_assignment(forbidden_identifiers, identifier_token_1):
+    global values
     identifier_1 = identifier_token_1.v
     if identifier_1 in forbidden_identifiers:
         error_handler.handle_error("Identifier " + identifier_1 +
                                    " ist bereits in Loop vorhanden und darf nicht verwendet werden.")
-
     if next_nonempty_token("Zuweisung", ":=") == 'EQUALS':
         error_handler.handle_error(":= in Zuweisung erwartet.")
-
     identifier_token_2 = next_nonempty_token("Zuweisung", "IDENTIFIER (x0, x1, ...) oder NUMBER")
     if identifier_token_2.k == 'NUMBER':
         value_1 = int(identifier_token_2.v)
-        value_list.update({identifier_token_1.v: value_1})
-        return next_token(), value_list
-
+        values.update({identifier_token_1.v: value_1})
+        return next_token()
     if not identifier_token_2.k == 'IDENTIFIER':
         error_handler.handle_error("IDENTIFIER in Zuweisung erwartet.")
     identifier_2 = identifier_token_2.v
     if identifier_2 in forbidden_identifiers:
         error_handler.handle_error("Identifier " + identifier_2 +
                                    " ist bereits in Loop vorhanden und darf nicht verwendet werden.")
-
-    if identifier_2 in value_list:
-        value_2 = value_list.get(identifier_2)
+    if identifier_2 in values:
+        value_2 = values.get(identifier_2)
     else:
         value_2 = 0
-
     operator_token = next_nonempty_token("Zuweisung", "+ oder -")
     op = None
     if operator_token.k == 'PLUS':
@@ -80,15 +76,12 @@ def process_assignment(value_list, forbidden_identifiers, identifier_token_1):
         op = operator.__sub__
     else:
         error_handler.handle_error("+ oder - in Zuweisung erwartet.")
-
     number_token = next_nonempty_token("Zuweisung", "NUMBER")
-
     if not number_token.k == 'NUMBER':
         error_handler.handle_error("NUMBER in Zuweisung erwartet.")
-
     value_1 = max(0, op(value_2, int(number_token.v)))
-    value_list.update({identifier_1: value_1})
-    return next_token(), value_list
+    values.update({identifier_1: value_1})
+    return next_token()
 
 
 def verify_assignment(forbidden_identifiers, identifier_token_1):
@@ -118,7 +111,8 @@ def verify_assignment(forbidden_identifiers, identifier_token_1):
     return next_token()
 
 
-def process_loop(value_list, forbidden_identifiers, loop_token):
+def process_loop(forbidden_identifiers, loop_token):
+    global values
     identifier_token = next_nonempty_token('LOOP', 'IDENTIFIER (x0, x1, ...)')
     if not identifier_token.k == 'IDENTIFIER':
         error_handler.handle_error('IDENTIFIER in LOOP erwartet.')
@@ -128,8 +122,8 @@ def process_loop(value_list, forbidden_identifiers, loop_token):
     if not next_nonempty_token("LOOP", "DO").k == 'DO':
         error_handler.handle_error('DO in LOOP erwartet.')
 
-    if identifier_token.v in value_list:
-        number_of_loops = int(value_list.get(identifier_token.v))
+    if identifier_token.v in values:
+        number_of_loops = int(values.get(identifier_token.v))
     else:
         number_of_loops = 0
 
@@ -139,7 +133,6 @@ def process_loop(value_list, forbidden_identifiers, loop_token):
 
     if number_of_loops == 0:
         end_found = False
-
         while not end_found:
             token = verify_program(forbidden_identifiers, next_token())
             if token is None or token.k not in ['SEMICOLON', 'END']:
@@ -154,7 +147,7 @@ def process_loop(value_list, forbidden_identifiers, loop_token):
         error_handler.line_number = saved_line
         end_found = False
         while not end_found:
-            token, value_list = process_program(value_list, forbidden_identifiers, next_token())
+            token = process_program(forbidden_identifiers, next_token())
             if token is None or token.k not in ['SEMICOLON', 'END']:
                 error_handler.handle_error("SEMICOLON oder END in LOOP erwartet.")
             elif token.k == 'SEMICOLON':
@@ -163,7 +156,7 @@ def process_loop(value_list, forbidden_identifiers, loop_token):
                 end_found = True
 
     forbidden_identifiers.remove(identifier_token.v)
-    return next_token(), value_list
+    return next_token()
 
 
 def verify_loop(forbidden_identifiers, loop_token):
@@ -192,16 +185,15 @@ def verify_loop(forbidden_identifiers, loop_token):
     return next_token()
 
 
-def process_program(value_list, forbidden_identifiers, current_token):
-    values = value_list
+def process_program(forbidden_identifiers, current_token):
     if current_token is None or current_token.k not in ['IDENTIFIER', 'LOOP']:
         error_handler.handle_error("Keine passende Anweisung gefunden\n" +
                                    "Erwartet: IDENTIFIER (x0, x1, ...) oder LOOP")
     elif current_token.k == 'IDENTIFIER':
-        current_token, values = process_assignment(value_list, forbidden_identifiers, current_token)
+        current_token = process_assignment(forbidden_identifiers, current_token)
     elif current_token.k == 'LOOP':
-        current_token, values = process_loop(value_list, forbidden_identifiers, current_token)
-    return current_token, values
+        current_token = process_loop(forbidden_identifiers, current_token)
+    return current_token
 
 
 def verify_program(forbidden_identifiers, current_token):
@@ -247,7 +239,7 @@ def interpret(program):
         forbidden_identifiers = []
         current_token = next_token()
         while current_token is not None:
-            current_token, values = process_program(values, forbidden_identifiers, current_token)
+            current_token = process_program(forbidden_identifiers, current_token)
             if current_token is not None:
                 if not current_token.k == 'SEMICOLON':
                     error_handler.handle_error("Semicolon erwartet")