diff --git a/gameLoop.c b/gameLoop.c
index 6465f6a8acafe3a5f6b6557d5f449e9460daa62d..690afe325dd0e74178d978132e7b5c92d93a7436 100644
--- a/gameLoop.c
+++ b/gameLoop.c
@@ -2,9 +2,9 @@
 #include <time.h>
 #include <stdbool.h>
 
-void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
+
+void gameLoop(enum vehicle theme,SDL_Renderer* renderer) {
     
-    int input;
     SDL_Event e;
     int speed;
 
@@ -18,21 +18,17 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
     playerscore = 0;
     playerhighscore = 0;
 
-    bool run = true;
+    bool end_game = false;
     bool start_game = false;
     SDL_Rect *character = &player;
     
     // erzeuge verkettete Liste, welche die Karte speichert
-    struct LinkedList *list = init_map(theme,character); 
+    struct LinkedList *map = init_map(theme,character); 
 
     Uint32 start = SDL_GetTicks();
 
-    //move_map(theme,0,list,character,renderer);
-    // Menü
-
-    //start_screen(theme,character, list, renderer);
     start_game = false;
-    while (run) {
+    while (!end_game) {
 
         while (SDL_PollEvent(&e)) {
 
@@ -42,9 +38,10 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
                       exit(0);
 
                 case SDL_KEYDOWN:
-                      input = e.key.keysym.scancode;
+
                       start_game = true;
-                      jump(input, character);
+
+                      jump(e.key.keysym.scancode, character);
                       break;
                       
                 default: 
@@ -54,7 +51,8 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
 
         // Wenn der Spieler weit oben ist, dann soll sich 
         // die Kammera schneller bewegen
-        if (run){
+        // Solange der Spieler sich noch nicht bewegt hat, bewegt sich die Karte nicht
+        if (!end_game){
             if (!start_game){
               speed = 0;
             }else if (character->y < 400){
@@ -64,9 +62,10 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
               speed = 1;
             }
 
-            SDL_RenderClear(renderer);
             // Die Map wird bewegt und gezeichnet (inklusive Fahrzeuge)
-       	    run = !move_map(theme,speed,list,character,renderer);
+            // Bei einer ungültigen Kollision wird das Spiel beendet
+            SDL_RenderClear(renderer);
+       	    end_game = move_map(theme,speed,map,character,renderer);
         }
 
         //Position des Spielers wird aktualisiert und gezeichnet
@@ -75,10 +74,12 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
 
 
         SDL_RenderPresent(renderer);
-        SDL_UpdateWindowSurface(window);
 
-        if(character->y >= 965){
-          run = false;
+
+
+        // Wenn der Spieler nicht im Fenster zu sehen ist, dann wird das Spiel beendet
+        if(character->y >= 1000){
+          end_game = true;
         }
 
         // Spiel bekommt eine feste Aktuallisierungsrate von ~60 fps
@@ -87,6 +88,6 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
             end = SDL_GetTicks();
         }
     }
-        free_map(list);
+        free_map(map);
         return;
 }
diff --git a/header.h b/header.h
index b25c126d9525abec978a03a36557feeff4d36eeb..0f108699a9e5c68f4447684f8420e5c59f2c0fe8 100644
--- a/header.h
+++ b/header.h
@@ -62,7 +62,7 @@ struct LinkedList_Auto{
 
 
 //Declarations of Functions
-enum vehicle startscreen(SDL_Renderer*,SDL_Window*);
+enum vehicle startscreen(SDL_Renderer*);
 
 struct Row* init_row(struct Row*, SDL_Rect *player);
 struct LinkedList* init_map(enum vehicle,SDL_Rect *player);
@@ -84,11 +84,10 @@ bool kollision(SDL_Rect*,int,int);
 void jump(int, SDL_Rect*);
 int update_character(int,SDL_Rect*, SDL_Renderer*);
 void move_character(int,SDL_Rect*);
-int start_screen(enum vehicle,SDL_Rect*, struct LinkedList*, SDL_Renderer*);
 bool end_screen(SDL_Renderer*);
 int init(SDL_Renderer*);
-int exitGame(SDL_Renderer*, SDL_Window*);
-void gameLoop(enum vehicle,SDL_Renderer*, SDL_Window*);
+int exitGame(SDL_Renderer*,SDL_Window* window);
+void gameLoop(enum vehicle,SDL_Renderer*);
 int title_screen(SDL_Renderer*);
 
 extern SDL_Rect player;
diff --git a/init.c b/init.c
index 9858012867203b7849d3df37df43c64f1616a3fd..705c56ebeb53d927b3786bffd7fe401fdeb69ef3 100644
--- a/init.c
+++ b/init.c
@@ -15,10 +15,10 @@ SDL_Texture *img_finishlineBright;
 SDL_Texture *img_finishlineDark;
 SDL_Texture *img_coin;
 SDL_Texture *img_Spielanleitung;
-SDL_Texture *img_carLeft_trans; // https://www.pinterest.com/pin/365776800983879017/
-SDL_Texture *img_car_trans; 
+SDL_Texture *img_carLeft_trans; // https://www.anyrgb.com/en-clipart-szoog
+SDL_Texture *img_car_trans; //https://www.anyrgb.com/en-clipart-szoog
 SDL_Texture *img_trainL;    //https://www.pinterest.com/hassanhojabri/sprite/
-SDL_Texture *img_trainR;
+SDL_Texture *img_trainR; //https://www.pinterest.com/hassanhojabri/sprite/
 SDL_Texture *img_plank; //https://www.craiyon.com/image/_XEsXKthRYqpK8Vn6ZixAg
 SDL_Texture *img_duck;
 TTF_Font* font;
@@ -45,14 +45,14 @@ int init(SDL_Renderer* renderer) {
     img_waterDarkMultiple = IMG_LoadTexture(renderer,"images/waterDarkMultiple.jpg");
     img_finishlineBright = IMG_LoadTexture(renderer,"images/finishlineBright.jpg");
     img_finishlineDark = IMG_LoadTexture(renderer,"images/finishlineDark.jpg");
-    img_car_trans = IMG_LoadTexture(renderer,"images/new_car_trans.png"); // https://www.pinterest.com/pin/365776800983879017/
+    img_car_trans = IMG_LoadTexture(renderer,"images/new_car_trans.png"); // Quelle: https://www.anyrgb.com/en-clipart-szoog
     img_carLeft_trans = IMG_LoadTexture(renderer,"images/new_carLeft_trans.png"); 
     img_coin = IMG_LoadTexture(renderer,"images/coin.jpg");
     img_Spielanleitung = IMG_LoadTexture(renderer,"images/Spielanleitung.png");
-    img_trainL = IMG_LoadTexture(renderer,"images/trainL.png"); // https://www.pinterest.de/pin/645492559082244309/
-    img_trainR = IMG_LoadTexture(renderer,"images/trainR.png"); 
-    img_plank = IMG_LoadTexture(renderer,"images/plank.png"); 
-    img_duck = IMG_LoadTexture(renderer,"images/duck.png");
+    img_trainL = IMG_LoadTexture(renderer,"images/trainL.png"); // Quelle: https://www.pinterest.de/pin/645492559082244309/
+    img_trainR = IMG_LoadTexture(renderer,"images/trainR.png"); // Quelle: https://www.pinterest.de/pin/645492559082244309/
+    img_plank = IMG_LoadTexture(renderer,"images/plank.png"); // Quelle: https://www.craiyon.com/image/_XEsXKthRYqpK8Vn6ZixAg
+    img_duck = IMG_LoadTexture(renderer,"images/duck.png"); 
 
     //Initiierung der Bilder
     int flags = IMG_INIT_PNG | IMG_INIT_JPG;
diff --git a/main.c b/main.c
index 1e8380a206768b37e0166bd82748e3f53c90bed6..a5ad2a12bec97ea11780014e502a290db878ad26 100644
--- a/main.c
+++ b/main.c
@@ -45,21 +45,25 @@ int main(void) {
         return(-1);
     }
 
+    title_screen(renderer);
+
     enum vehicle theme; 
     bool change_Map = true;
-    title_screen(renderer);
+
     while (true) {
+
         if (change_Map){
-            theme = startscreen(renderer,window);
+            theme = startscreen(renderer);
         }
         if (theme == (-1)){ // Spiel wurde geschlossen oder es kam zu einem Fehler
             break;
         }
-        gameLoop(theme,renderer, window);
+        gameLoop(theme,renderer);
         change_Map = end_screen(renderer);
 
     }
     
-    exitGame(renderer, window);
+    exitGame(renderer,window);
+
     return(0);
 }
diff --git a/map.c b/map.c
index 9051203962e838415544145bb1ddd3f69c0bc221..5a0c9af4e83a5f74464df1400f8cf247eaeb1ee3 100644
--- a/map.c
+++ b/map.c
@@ -69,10 +69,10 @@ struct LinkedList* init_map(enum vehicle theme,SDL_Rect* character){
 //               boat => ein Wasser wird generiert, wenn ein Reihe gelöscht wurde
 //                                                
 // Nachbedingung: 
+//      Wenn es zu einer ungültigen Kollision gibt, dann wird 1 zurückgegeben
 //      Der Wert y_pos jeder Reihe wird um z erhöht
 //      Eine Reihe wurde gelöscht, wenn y_pos >= 1000 
 //      + neue Reihe mit Typ theme wurde an das Ende der Linked Ende hinzugefügt
-
 int move_map(enum vehicle theme,int delta_y,struct LinkedList *list,SDL_Rect *character, SDL_Renderer* renderer){
 
     struct Row *cur = list->head;
diff --git a/menu2.c b/menu2.c
index f7c445df4a15525235d9744b4023154b64971ea2..1cfa77909d72bffab36b525feb74de6b537e5206 100644
--- a/menu2.c
+++ b/menu2.c
@@ -9,9 +9,8 @@
 // Die Funktion zeigt die möglichen Reihen des Spiels
 // Wenn man auf eine Reihe klickt, dann wir das Spiel mit einer bestimmten 
 // Konfiguration gestartet
-enum vehicle startscreen(SDL_Renderer* renderer,SDL_Window *window){
+enum vehicle startscreen(SDL_Renderer* renderer){
 
-    SDL_RenderClear(renderer);
 
     if (TTF_Init() == -1) {
     SDL_Log("SDL_ttf konnte nicht initialisiert werden! SDL_ttf Error: %s\n",
@@ -99,6 +98,7 @@ enum vehicle startscreen(SDL_Renderer* renderer,SDL_Window *window){
 
         SDL_RenderCopy(renderer,Message,NULL,&rect);
         SDL_RenderPresent(renderer);
-        SDL_UpdateWindowSurface(window);
+        
+        SDL_RenderClear(renderer);
     }
 }
\ No newline at end of file