diff --git a/Snake/main.py b/Snake/main.py
index 4d24602..f8c3ce9 100644
--- a/Snake/main.py
+++ b/Snake/main.py
@@ -5,42 +5,71 @@ import src.level as level
 import src.snake as snake
 import src.window as window
 
-LEVEL = 1
-HEIGH = 10
-WIDTH = 20
-MATRIX = level.init_level(HEIGH, WIDTH)
+HEIGH = 20
+WIDTH = 40
 
 def main():
-    global MATRIX
+    # Init Matrix/Window
+    Matrix = level.init_level(HEIGH, WIDTH)
+    Screen = window.init_game()
+
+    # Init Game Variables
+    clock = pygame.time.Clock()
+    Running = True
+    Direction = 'right'
+    Direction_prev = 'right'
+    Move_loop = 30
+    Score = 0
+    Difficulty = 10
+    Fruit = False
+
+    # Spawn snake head
     L_snake = snake.List((5, 5), None)
-    L_snake = snake.List.List_add(L_snake, (5, 4))
-    L_snake = snake.List.List_add(L_snake, (5, 3))
-    L_snake = snake.List.List_add(L_snake, (5, 2))
-    print(L_snake)
-    print("Size : ", snake.List.List_size(L_snake))
-    
-    MATRIX[5][5] = 1
-    MATRIX[5][4] = 1
-    MATRIX[5][3] = 1
-    MATRIX[5][2] = 1
 
-    MATRIX[5][6] = 3
-    level.spawn_apple(MATRIX, HEIGH, WIDTH)
-    print(MATRIX)
+    level.spawn_apple(Matrix, HEIGH, WIDTH)
 
-    try:
-        L_snake, MATRIX = snake.Snake_move(MATRIX, L_snake, "up")
-    except ValueError as Error:
-        if Error.args[0] == 1:
-            print("You take a wall !")
-        elif Error.args[0] == 2:
-            print("You ate your tale !")
-        
-        exit()
-    
-    
-    print(L_snake)
-    print(MATRIX)
+    while Running:
+        clock.tick(60)
+
+        for event in pygame.event.get():
+            if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
+                Running = False
+            if event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
+                Direction = 'right'
+            if event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
+                Direction = 'left'
+            if event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
+                Direction = 'up'
+            if event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN:
+                Direction = 'down'
+
+        if Move_loop == 0:
+            if Direction == 'left' and Direction_prev == 'right' or Direction == 'right' and Direction_prev == 'left' or Direction == 'up' and Direction_prev == 'down' or Direction == 'down' and Direction_prev == 'up':
+                Direction = Direction_prev
+
+            try:
+                L_snake, Matrix, Fruit = snake.Snake_move(Matrix, L_snake, Direction, HEIGH, WIDTH)
+            except ValueError as Error:
+                if Error.args[0] == 1:
+                    print("You take a wall !")
+                elif Error.args[0] == 2:
+                    print("You ate your tale !")
+                exit()
+            
+            if Fruit:
+                level.spawn_apple(Matrix, HEIGH, WIDTH)
+            
+            Direction_prev = Direction
+            Move_loop = 30 - Difficulty*2
+
+        Move_loop -= 1
+
+        # Draw Scene
+        Screen = window.draw_level(Screen, Matrix, Difficulty, Score, HEIGH, WIDTH)
+        pygame.display.flip()
+
+        # Print current fps
+        print(float("{0:.2f}".format(clock.get_fps())), 'fps')
 
 
 if __name__ == "__main__":