diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
index fb133e03bf95235c554799f8352c2267defcec0a..e5c306dc222975260d60b2a98b86c0f7cb6f67d4 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
@@ -1,5 +1,6 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
+import de.hdm_stuttgart.battlearena.Model.Entity.Player;
 import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler;
 
 import javafx.animation.AnimationTimer;
@@ -25,25 +26,31 @@ public class GameSceneController implements Initializable {
 
     InputHandler inputHandler = InputHandler.getInstance();
 
+    Player player;
+
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
         graphicsContext2D = canvas2D.getGraphicsContext2D();
 
+        player = new Player(graphicsContext2D, inputHandler);
+
         AnimationTimer gameLoop = new AnimationTimer() {
             @Override
             public void handle(long l) {
+                graphicsContext2D.clearRect(0, 0, canvas2D.getWidth(), canvas2D.getHeight());
                 updateContent();
                 renderContent(graphicsContext2D);
             }
         };
+        gameLoop.start();
     }
 
     private void updateContent() {
-
+        player.updateEntityMovement();
     }
 
     private void renderContent(GraphicsContext graphicsContext) {
-
+        player.renderEntity(graphicsContext);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..873a83590b45a0e611574142f6000f6de039c300
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java
@@ -0,0 +1,10 @@
+package de.hdm_stuttgart.battlearena.Model.Entity;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+
+public class EntityFactory {
+
+    private static final Logger log = LogManager.getLogger(EntityFactory.class);
+
+}
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java
index 5c1d0ab7366c916911c31396de19092561b3136c..0b5e206ba48a60889ff8b31bbe6bc7f9aae05168 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java
@@ -50,8 +50,8 @@ public class Player implements IEntity {
     @Override
     public void loadEntitySprites() {
         try {
-            directionDownOne = new Image(Objects.requireNonNull(getClass().getResourceAsStream("textures/player/playerPlaceholder.png")));
-            directionDownTwo = new Image(Objects.requireNonNull(getClass().getResourceAsStream("textures/player/playerPlaceholder.png")));
+            directionDownOne = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/player/playerPlaceholder.png")));
+            directionDownTwo = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/player/playerPlaceholder.png")));
         } catch (Exception e) {
             log.error(e);
         }
@@ -69,28 +69,28 @@ public class Player implements IEntity {
             } else {
                 playerDirection = "right";
             }
-        }
 
-        boolean isColliding = false;
-
-        if (!isColliding) {
-            switch (playerDirection) {
-                case "up":
-                    mapPosY -= playerSpeed;
-                    break;
-                case "down":
-                    mapPosY += playerSpeed;
-                    break;
-                case "left":
-                    mapPosX -= playerSpeed;
-                    break;
-                case "right":
-                    mapPosX += playerSpeed;
+            boolean isColliding = false;
+
+            if (!isColliding) {
+                switch (playerDirection) {
+                    case "up":
+                        mapPosY -= playerSpeed;
+                        break;
+                    case "down":
+                        mapPosY += playerSpeed;
+                        break;
+                    case "left":
+                        mapPosX -= playerSpeed;
+                        break;
+                    case "right":
+                        mapPosX += playerSpeed;
+                }
             }
-        }
 
-        updateEntityAnimation();
+            updateEntityAnimation();
 
+        }
     }
 
     @Override
@@ -144,4 +144,13 @@ public class Player implements IEntity {
 
         graphicsContext.drawImage(playerSprite, mapPosX, mapPosY, 48, 48);
     }
+
+    public int getMapPosX() {
+        return mapPosX;
+    }
+
+    public int getMapPosY() {
+        return mapPosY;
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java
index ff6f60e080ec5a5e6981d4f659e0822015bf814a..883b00bc8e2618b05762cb733732f2b8334205fd 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java
@@ -48,6 +48,7 @@ public class InputHandler {
                 break;
             case S:
                 moveDown = false;
+                break;
             case A:
                 moveLeft = false;
                 break;