diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dd4c951ef44ebdc37bbe4a453aab974c815ca6f6
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="PROJECT_PROFILE" value="Default" />
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c6e9a72a96bffb6ce40ce23e0f9e0623a701311a..fc45e5d1ccd129776fae9a28db0af25398ca6ad2 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="MavenProjectsManager">
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
index be1256f441fa09604694e890557db0bd53131531..db877f9ad027ae08a96f1365690014eace49f1d9 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
@@ -24,7 +24,7 @@ public class CommunityMapController implements Initializable {
     @FXML
     private TableColumn<DataItem, String> name;
 
-    Rectangle2D screen = Screen.getPrimary().getVisualBounds();
+    private final Rectangle2D screen = Screen.getPrimary().getVisualBounds();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -54,7 +54,7 @@ public class CommunityMapController implements Initializable {
         parent.getChildren().add(new SceneLoader().loadScene("MapForge"));
     }
 
-//    test values TODO: replace with db
+    //    test values TODO: replace with db
     public static class DataItem {
         private final SimpleStringProperty name;
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java
index 826cb76c7ba083c1cd0608fe5d6d83e28ef68733..26fedf89d991531bea80c5d98b1b4022bf3d81ff 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java
@@ -11,6 +11,8 @@ import javafx.scene.control.RadioButton;
 import javafx.scene.control.TextField;
 import javafx.scene.control.ToggleGroup;
 import javafx.scene.layout.VBox;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.net.URL;
 import java.util.ResourceBundle;
@@ -26,10 +28,10 @@ public class CreateAccountController implements Initializable {
     private TextField playerName, password;
     @FXML
     private Label errorMessage, passwordLabel;
-
-    String selectedButton;
-    SceneLoader sceneLoader = new SceneLoader();
-    Persistence persistence = Persistence.getInstance();
+    private String selectedButton;
+    private final SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
+    private static final Logger log = LogManager.getLogger(SceneLoader.class);
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -41,7 +43,7 @@ public class CreateAccountController implements Initializable {
             if (statistics.getSelectedToggle() != null) {
                 RadioButton selectedToggle = (RadioButton) statistics.getSelectedToggle();
                 selectedButton = selectedToggle.getText();
-                System.out.println(selectedButton);
+                log.info("Statistics tracking set to: " + selectedButton);
             }
             if (local.isSelected()) {
                 password.setEditable(false);
@@ -73,9 +75,11 @@ public class CreateAccountController implements Initializable {
             persistence.createAccount(playerName.getText(), password.getText(), accountType);
             persistence.resetPlayerStatistics();
             persistence.loadPlayerStatistics();
+            log.info(accountType + " Account created");
             switchScene("MainMenu");
         } catch (DatabaseException e) {
             errorMessage.setText(e.getMessage());
+            log.debug(e.getMessage());
         }
     }
 
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 b461f4d7e40818daf7a8f2f05cb8ae9e28f702aa..34ba629ad41a879a0361d9e4c3f83b92094816e0 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
@@ -37,7 +37,6 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 public class GameSceneController implements Initializable {
-
     private static final Logger log = LogManager.getLogger(GameSceneController.class);
     @FXML
     private BorderPane gameScene;
@@ -53,73 +52,34 @@ public class GameSceneController implements Initializable {
     private StackPane stackPane;
     private final Pane pause = new SceneLoader().loadScene("Pause");
 
+    private final long targetFrameTime = 1_000_000_000 / 80; // sets the target frame time to 12.5 ms (80fps)
+    private long lastFrame = 0;
     private boolean wasPaused;
-    Screen screen = Screen.getPrimary();
-    Rectangle2D visualBounds = screen.getVisualBounds();
+    private final Screen screen = Screen.getPrimary();
+    private final Rectangle2D visualBounds = screen.getVisualBounds();
     final private double healthBarWidth = screen.getBounds().getWidth() / 5;
     ScreenDimensionCalculator screenCalculator = new ScreenDimensionCalculator();
 
     private GraphicsContext graphicsContext2D;
-
     InputHandler inputHandler = InputHandler.getInstance();
-
     RuntimeInfo runtimeInfo = RuntimeInfo.getInstance();
-
-
-
     GameMode gameMode = runtimeInfo.getGameMode();
-
     IEntity player;
     IEntity enemy;
-
     EntityClass playerOneClass = runtimeInfo.getPlayerOneClass();
     EntityClass playerTwoClass = runtimeInfo.getPlayerTwoClass();
-
     TileManager tileManager;
 
     //map data
-
-
     int horizontalTileCount = 18;
     int verticalTileCount = 18;
     int diffTileCount = 30;
     int scaledTileSize = 48;
     private final Biom biom = runtimeInfo.getMapBiom();
-    private final long targetFrameTime = 1_000_000_000 / 80; // sets the target frame time to 12.5 ms (80fps)
-    private long lastFrame = 0;
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
-        double diagonalInches = screenCalculator.calculateDiagonalInches(visualBounds.getWidth(),
-                visualBounds.getHeight(), screen.getDpi());
-//        for some reason scene builder overwrites css fonts bruh
-        playerHp.setFont(Font.loadFont(getClass().getResourceAsStream("/fonts/StarshipShadow.ttf"), 55));
-        enemyHp.setFont(Font.loadFont(getClass().getResourceAsStream("/fonts/StarshipShadow.ttf"), 55));
-        playerHp.setText("100%");
-        playerHp.setMinWidth(120);
-        playerHp.setMaxWidth(120);
-        enemyHp.setText("100%");
-        enemyHp.setMinWidth(120);
-
-//        stopping the VBox from shrinking when health bar gets smaller
-        playerPane.setMinWidth(healthBarWidth);
-        playerPane.setMaxWidth(healthBarWidth);
-        enemyPane.setMinWidth(healthBarWidth);
-        enemyPane.setMaxWidth(healthBarWidth);
-
-        playerHealth.setWidth(healthBarWidth);
-        enemyHealth.setWidth(healthBarWidth);
-
-//        make it responsive
-        stackPane.heightProperty().addListener((observableValue, oldValue, newValue) -> {
-            canvas2D.setScaleY(newValue.doubleValue() / 870);
-            canvas2D.setScaleX(newValue.doubleValue() / 870);
-        });
-
-        System.out.println(stackPane.heightProperty());
-        System.out.println("dpi: " + screen.getDpi());
-
-        System.out.println("inches: " + diagonalInches);
+        setScene();
 
         graphicsContext2D = canvas2D.getGraphicsContext2D();
         graphicsContext2D.setImageSmoothing(false);
@@ -138,8 +98,6 @@ public class GameSceneController implements Initializable {
                 verticalTileCount, runtimeInfo.getMapDataGame(), biom);
 
 
-
-
         runtimeInfo.setGameState(GameState.PLAYING);
 
         AnimationTimer gameLoop = new AnimationTimer() {
@@ -167,6 +125,32 @@ public class GameSceneController implements Initializable {
         log.debug("Game loop started");
     }
 
+    private void setScene() {
+//        for some reason scene builder overwrites css fonts
+        playerHp.setFont(Font.loadFont(getClass().getResourceAsStream("/fonts/StarshipShadow.ttf"), 55));
+        enemyHp.setFont(Font.loadFont(getClass().getResourceAsStream("/fonts/StarshipShadow.ttf"), 55));
+        playerHp.setText("100%");
+        playerHp.setMinWidth(120);
+        playerHp.setMaxWidth(120);
+        enemyHp.setText("100%");
+        enemyHp.setMinWidth(120);
+
+//        stopping the VBox from shrinking when health bar gets smaller
+        playerPane.setMinWidth(healthBarWidth);
+        playerPane.setMaxWidth(healthBarWidth);
+        enemyPane.setMinWidth(healthBarWidth);
+        enemyPane.setMaxWidth(healthBarWidth);
+
+        playerHealth.setWidth(healthBarWidth);
+        enemyHealth.setWidth(healthBarWidth);
+
+//        make it responsive
+        stackPane.heightProperty().addListener((observableValue, oldValue, newValue) -> {
+            canvas2D.setScaleY(newValue.doubleValue() / 870);
+            canvas2D.setScaleX(newValue.doubleValue() / 870);
+        });
+    }
+
     private void pauseMenu() {
 //        setting blur in for loop otherwise all child node will inherit blur from root including pause menu
         for (Node child : gameScene.getChildren()) {
@@ -181,6 +165,7 @@ public class GameSceneController implements Initializable {
         }
         stackPane.getChildren().add(pause);
         wasPaused = true;
+        log.info("Game paused");
     }
 
     private void resume() {
@@ -192,9 +177,9 @@ public class GameSceneController implements Initializable {
         }
         stackPane.getChildren().remove(pause);
         wasPaused = false;
+        log.info("Game resumed");
     }
 
-
     private void updateContent() {
         player.updateEntity(this);
         enemy.updateEntity(this);
@@ -229,7 +214,7 @@ public class GameSceneController implements Initializable {
         enemy.renderEntity(graphicsContext);
         renderGameplayObjects(graphicsContext);
     }
-    
+
     private void renderGameplayObjects(GraphicsContext graphicsContext) {
         List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects();
         for (IEntity gameplayObject : gameplayObjects) {
@@ -261,7 +246,7 @@ public class GameSceneController implements Initializable {
         return scaledTileSize;
     }
 
-    public InputHandler getInputHandler(){
+    public InputHandler getInputHandler() {
         return inputHandler;
     }
 }
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
index 49fca79d9f840804e440b2d719dd657ab8553496..f875d299f5c512438c5f1934ef0b51367fa5331b 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
@@ -19,19 +19,16 @@ import java.util.Objects;
 import java.util.ResourceBundle;
 
 public class IntroController implements Initializable {
-
     @FXML
     private MediaView mediaView;
     @FXML
     private BorderPane introParent;
     private final String fileName = "src/main/resources/videos/";
-    //    nextVideo() will iterate through this array so the next video will be played TODO: change the videos to non memes lmao
+    //    nextVideo() will iterate through this array so the next video will be played
     private final String[] videos = {"black.mp4", "EngineIntro.mp4", "DigitalGlitch.mp4", "BattleArenaIntro.mp4"};
     private File file = new File(fileName + videos[0]);
     private int counter = 0;
     private MediaPlayer mediaPlayer;
-    private final Persistence persistence = Persistence.getInstance();
-    private static final Logger log = LogManager.getLogger(Persistence.class);
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java
index 4ded7a6ffff9ad1d656da19dab7cc3205c93632d..91c701f8632b2dc261ca0a48b6bb5a60b69009ac 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java
@@ -30,7 +30,6 @@ public class LoadingScreenController implements Initializable {
     private BorderPane parent;
     @FXML
     private ImageView logo, throbber;
-
     private int counter = 0;
     private boolean statsLoaded = false;
     private final String[] loadingTips = {
@@ -60,14 +59,15 @@ public class LoadingScreenController implements Initializable {
 
     private final List<String> shuffledTips = Arrays.asList(loadingTips);
     private static final Logger log = LogManager.getLogger(Persistence.class);
-    Rectangle2D screen = Screen.getPrimary().getVisualBounds();
-    ThreadStartup1 thread1 = new ThreadStartup1();
-    ThreadStartup2 thread2 = new ThreadStartup2();
-    Persistence persistence = Persistence.getInstance();
+    private final Rectangle2D screen = Screen.getPrimary().getVisualBounds();
+    private final ThreadStartup1 thread1 = new ThreadStartup1();
+    private final ThreadStartup2 thread2 = new ThreadStartup2();
+    private final Persistence persistence = Persistence.getInstance();
 
     Thread tipsThread = new Thread(() -> {
         try {
             setLoadingTips();
+            log.debug("Executing tipsThread");
         } catch (InterruptedException e) {
             log.info("Data finished loading");
         }
@@ -75,17 +75,21 @@ public class LoadingScreenController implements Initializable {
 
     Thread loadStatistics = new Thread(() -> {
         try {
+            log.debug("Executing loadStatistics thread");
             Thread.sleep(5000);
             loadStatistics();
         } catch (IOException e) {
+            log.error(e);
             throw new RuntimeException();
         } catch (InterruptedException e) {
+            log.error(e);
             throw new RuntimeException(e);
         }
     });
 
     Thread waitingForThread1 = new Thread(() -> {
         try {
+            log.debug("Executing waitingForThread1");
             thread1.join();
         } catch (InterruptedException e) {
             throw new RuntimeException(e);
@@ -106,7 +110,6 @@ public class LoadingScreenController implements Initializable {
 
     private void setImages() {
         logo.setTranslateY(screen.getHeight() * 0.08);
-        System.out.println(screen.getHeight());
         logo.setFitWidth(screen.getWidth() * 0.3);
         throbber.setFitWidth(screen.getWidth() * 0.07);
         logo.setPreserveRatio(true);
@@ -151,7 +154,8 @@ public class LoadingScreenController implements Initializable {
                 tipsThread.interrupt();
                 RuntimeInfo.getInstance().setGameState(GameState.MENU);
                 parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml"))));
-            } catch (IOException e) {
+            } catch (Exception e) {
+                log.error(e);
                 throw new RuntimeException(e);
             }
         });
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java
index 69b2cb5b336306ffa11e72ad169745d1c83c9cd4..9284a0f05631f669f065ee4e3b8235b06b713322 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java
@@ -1,12 +1,15 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.control.TitledPane;
 import javafx.scene.control.ToggleButton;
 import javafx.scene.control.ToggleGroup;
 import javafx.scene.layout.VBox;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.net.URL;
 import java.util.ResourceBundle;
@@ -19,6 +22,8 @@ public class LocalCreateController implements Initializable {
     @FXML
     private ToggleGroup rounds;
     private final SceneLoader sceneLoader = new SceneLoader();
+    private static final Logger log = LogManager.getLogger(Persistence.class);
+
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -26,9 +31,11 @@ public class LocalCreateController implements Initializable {
             if (rounds.getSelectedToggle() != null) {
                 ToggleButton selected = (ToggleButton) rounds.getSelectedToggle();
                 roundsTitledPane.setText(selected.getText());
+                log.info("Match rounds: " + selected.getText());
             }
         });
     }
+
     @FXML
     private void backButton() {
         parent.getChildren().clear();
@@ -40,5 +47,4 @@ public class LocalCreateController implements Initializable {
         parent.getChildren().clear();
         parent.getChildren().add(sceneLoader.loadScene("SkinSelection"));
     }
-
 }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java
index aa95e2e8208a6eb2e75d53235d5f4fe68c11e763..1cf040890ea9f3498669680c7ddeefb72e69964d 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java
@@ -2,19 +2,16 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.DatabaseException;
-import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.ParserException;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
-import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Utilities.Parser;
 import javafx.application.Platform;
 import javafx.fxml.FXML;
-import javafx.fxml.Initializable;
 import javafx.scene.control.Label;
 import javafx.scene.control.TextField;
 import javafx.scene.layout.VBox;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
-import java.net.URL;
 import java.security.NoSuchAlgorithmException;
-import java.util.ResourceBundle;
 
 public class LoginController {
     @FXML
@@ -23,9 +20,9 @@ public class LoginController {
     private TextField playerName, password;
     @FXML
     private Label errorMessage;
-
-    SceneLoader sceneLoader = new SceneLoader();
-    Persistence persistence = Persistence.getInstance();
+    private final SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
+    private static final Logger log = LogManager.getLogger(Persistence.class);
 
     private void switchScene(String name) {
         parent.getChildren().clear();
@@ -41,12 +38,15 @@ public class LoginController {
 
     Thread thread = new Thread(() -> {
         try {
+            log.info("Login Player: " + playerName);
             persistence.login(playerName.getText(), password.getText());
             persistence.loadPlayerStatistics();
             Platform.runLater(() -> switchScene("MainMenu"));
         } catch (NoSuchAlgorithmException e) {
+            log.error(e);
             throw new RuntimeException(e);
         } catch (DatabaseException e) {
+            log.debug(e.getMessage());
             Platform.runLater(() -> errorMessage.setText(e.getMessage()));
         }
     });
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
index d1efdc6aab8e9c380eb4c6bbdd122161ee521587..fb877b68420a3898f7a8c6e700093816342d0bbe 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
@@ -5,14 +5,11 @@ import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.Databas
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
 import javafx.fxml.FXML;
-import javafx.fxml.Initializable;
 import javafx.scene.control.Button;
 import javafx.scene.layout.VBox;
-import javafx.stage.Screen;
 import javafx.stage.Stage;
-
-import java.net.URL;
-import java.util.ResourceBundle;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class MainMenuController {
     @FXML
@@ -22,6 +19,7 @@ public class MainMenuController {
     private final SceneLoader sceneLoader = new SceneLoader();
     private final Persistence persistence = Persistence.getInstance();
     private final MusicPlayer player = MusicPlayer.getInstance();
+    private static final Logger log = LogManager.getLogger(Persistence.class);
 
     private void switchScene(String name) {
         parent.getChildren().clear();
@@ -53,6 +51,7 @@ public class MainMenuController {
         player.getScheduler().shutdown();
         persistence.savePlayerStatistics();
         persistence.saveSettings();
+        log.info("Exiting game");
         Stage stage = (Stage) exitButton.getScene().getWindow();
         stage.close();
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
index 384f4de3556b6f59641080e9443eadba2cc781da..b090af45bfe7414142f40b22791e111d9e4caf28 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
@@ -15,7 +15,7 @@ import java.util.Objects;
 public class MapForgeController {
     @FXML
     private VBox parent;
-    SceneLoader sceneLoader = new SceneLoader();
+    private final SceneLoader sceneLoader = new SceneLoader();
     private final Persistence persistence = Persistence.getInstance();
 
     @FXML
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java
index 8e9476335c7285fd96e355ca9fb1766e8ea9dc36..bd769f0765bc5ad4b966062eef20363e93bbf090 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java
@@ -31,15 +31,13 @@ public class MapSelectionController implements Initializable {
     @FXML
     private ToggleGroup textureToggle;
 
-    private int selectedMap;
+    private String selectedTexture, selectedMap;
 
+    private int mapIndex;
     private final SceneLoader sceneLoader = new SceneLoader();
-
     private final ArrayList<MapData> coreMaps = Persistence.getInstance().getCoreMaps();
-
     private static final Logger log = LogManager.getLogger(MapSelectionController.class);
-
-    RuntimeInfo runtimeInfo = RuntimeInfo.getInstance();
+    private final RuntimeInfo runtimeInfo = RuntimeInfo.getInstance();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -51,23 +49,23 @@ public class MapSelectionController implements Initializable {
         textureToggle.selectedToggleProperty().addListener(((observableValue, oldToggle, newToggle) -> {
             if (textureToggle != null) {
                 ToggleButton selected = (ToggleButton) textureToggle.getSelectedToggle();
-                String value = selected.getText();
-                switch (value) {
+                selectedTexture = selected.getText();
+                switch (selectedTexture) {
                     case "Bomberman":
                         runtimeInfo.setMapBiom(Biom.BOMBERMAN);
-                        textures.setText(value);
+                        textures.setText(selectedTexture);
                         break;
                     case "Dark Lands":
                         runtimeInfo.setMapBiom(Biom.DARK_LANDS);
-                        textures.setText(value);
+                        textures.setText(selectedTexture);
                         break;
                     case "Forrest":
                         runtimeInfo.setMapBiom(Biom.FORREST);
-                        textures.setText(value);
+                        textures.setText(selectedTexture);
                         break;
                     case "Grass":
                         runtimeInfo.setMapBiom(Biom.GRASS);
-                        textures.setText(value);
+                        textures.setText(selectedTexture);
                 }
             }
         }));
@@ -85,11 +83,9 @@ public class MapSelectionController implements Initializable {
         group.selectedToggleProperty().addListener((observableValue, oldToggle, newToggle) -> {
             if (group.getSelectedToggle() != null) {
                 ToggleButton selected = (ToggleButton) group.getSelectedToggle();
-                selectedMap = boxBox.getChildren().indexOf(selected);
-                System.out.println(selectedMap);
-                String value = selected.getText();
-                maps.setText(value);
-                System.out.println(value);
+                mapIndex = boxBox.getChildren().indexOf(selected);
+                selectedMap = selected.getText();
+                maps.setText(selectedMap);
             }
         });
     }
@@ -97,11 +93,13 @@ public class MapSelectionController implements Initializable {
     @FXML
     private void gameScene() {
         try {
-            RuntimeInfo.getInstance().setGameState(GameState.PLAYING);
-            RuntimeInfo.getInstance().setGameMap(coreMaps.get(selectedMap));
+            RuntimeInfo.getInstance().setGameMap(coreMaps.get(mapIndex));
+            log.info("Selected map: " + selectedMap);
+            log.info("Selected texture: " + selectedTexture);
             parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/GameScene.fxml"))));
+            RuntimeInfo.getInstance().setGameState(GameState.PLAYING);
         } catch (IOException e) {
-            log.info(e.getCause());
+            log.error(e);
             throw new RuntimeException();
         }
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
index ea40adc6b6cb662a7b2afd182a08b19f7c0e19a5..8b861d21b43392e78fa90bbac0297ed08817a49f 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
@@ -11,9 +11,7 @@ import javafx.fxml.Initializable;
 import javafx.geometry.Rectangle2D;
 import javafx.scene.control.Button;
 import javafx.scene.image.ImageView;
-import javafx.scene.layout.BorderPane;
 import javafx.scene.layout.StackPane;
-import javafx.scene.media.Media;
 import javafx.scene.media.MediaPlayer;
 import javafx.scene.media.MediaView;
 import javafx.stage.Screen;
@@ -23,8 +21,6 @@ import java.net.URL;
 import java.util.*;
 
 public class MenuBorderPaneController implements Initializable {
-    @FXML
-    private BorderPane parent;
     @FXML
     private Button btnRight, btnLeft;
     @FXML
@@ -41,7 +37,6 @@ public class MenuBorderPaneController implements Initializable {
             "pot", "catRave", "mineCraftCat2", "defense", "singingCat", "tutel", "catEating", "catJump", "bear", "pancake", "frog", "gtfo", "carl", "dog2", "slippery", "wolf", "legCat", "sad", "waaahhh"};
 
     List<String> shuffledVideos = Arrays.asList(videoFiles);
-
     Rectangle2D screen = Screen.getPrimary().getVisualBounds();
     RuntimeInfo runtimeInfo = RuntimeInfo.getInstance();
 
@@ -68,11 +63,8 @@ public class MenuBorderPaneController implements Initializable {
     private void easterEgg() {
         btnRight.setOnMouseClicked(mouseEvent -> {
             musicCounter++;
-            switch (musicCounter) {
-                case 5:
-                    runtimeInfo.setGameState(GameState.MEMES);
-                    break;
-//                    TODO: more
+            if (musicCounter == 4) {
+                runtimeInfo.setGameState(GameState.MEMES);
             }
         });
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseController.java
index 385b2bed4756536903c276da21f2007094c1ff0f..c5b3394d55b4e7cea699d4bf6784b9c953828bc0 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseController.java
@@ -2,7 +2,6 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Enum.GameState;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
-import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
 import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler;
 import javafx.fxml.FXML;
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseSettingsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseSettingsController.java
index 802a0b37b6c38bf0eeb30263e381cbbc9974ca10..b30e6262fd3d3b0c313ee42c7743e517994cc325 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseSettingsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PauseSettingsController.java
@@ -17,11 +17,11 @@ public class PauseSettingsController implements Initializable {
     private VBox parent;
     @FXML
     private Slider musicSlider, sfxSlider;
-    SceneLoader sceneLoader = new SceneLoader();
+    private final SceneLoader sceneLoader = new SceneLoader();
     private int musicVolume, sfxVolume;
-    Persistence persistence = Persistence.getInstance();
-    MusicPlayer player = MusicPlayer.getInstance();
-    SoundEffects sfx = new SoundEffects();
+    private final Persistence persistence = Persistence.getInstance();
+    private final MusicPlayer player = MusicPlayer.getInstance();
+    private final SoundEffects sfx = new SoundEffects();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java
index 56f73045145a2c36b567f177e7423cd86f0bcd07..0d86f9f932645df2dfb7c1692b319b7ee992a444 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java
@@ -8,8 +8,7 @@ import javafx.stage.Stage;
 public class PlayerCreateController {
     @FXML
     private VBox parent;
-
-    SceneLoader sceneLoader = new SceneLoader();
+    private final SceneLoader sceneLoader = new SceneLoader();
 
     private void switchScene(String name) {
         parent.getChildren().clear();
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
index f10900fc1bedda32939424bc352cd24598000718..195aaaa6af32a6356b9e4ee94d1e704d96b45fae 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
@@ -22,11 +22,11 @@ public class SettingsController implements Initializable {
     private VBox parent;
     @FXML
     private Slider musicSlider, sfxSlider;
-    SceneLoader sceneLoader = new SceneLoader();
+    private final SceneLoader sceneLoader = new SceneLoader();
     private int musicVolume, sfxVolume;
-    Persistence persistence = Persistence.getInstance();
-    MusicPlayer player = MusicPlayer.getInstance();
-    SoundEffects sfx = new SoundEffects();
+    private final Persistence persistence = Persistence.getInstance();
+    private final MusicPlayer player = MusicPlayer.getInstance();
+    private final SoundEffects sfx = new SoundEffects();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
index 04cb45c4e227ac4ca3abac516b1c07f43951096f..6c33ca6e90bf1e51034774959e53b53f7b2c1aa0 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
@@ -1,6 +1,8 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
+import de.hdm_stuttgart.battlearena.Model.Entity.EntityClass;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.geometry.Rectangle2D;
@@ -9,6 +11,8 @@ import javafx.scene.control.ToggleGroup;
 import javafx.scene.image.ImageView;
 import javafx.scene.layout.VBox;
 import javafx.stage.Screen;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.net.URL;
 import java.util.ResourceBundle;
@@ -17,25 +21,57 @@ public class SkinSelectionController implements Initializable {
     @FXML
     private VBox parent;
     @FXML
-    private ToggleGroup selectionButton;
+    private ToggleGroup playerOne, playerTwo;
     @FXML
-    private ImageView selection1, selection2, selection3;
+    private ImageView playerOne1, playerOne2, playerOne3, playerTwo1, playerTwo2, playerTwo3;
+    private String playerOneSkin, playerTwoSkin;
+    private final RuntimeInfo runtimeInfo = RuntimeInfo.getInstance();
+    private static final Logger log = LogManager.getLogger(MapSelectionController.class);
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
-        selectionButton.selectedToggleProperty().addListener((observableValue, oldToggle, newToggle) -> {
-            if (selectionButton.getSelectedToggle() != null) {
-                ToggleButton selected = (ToggleButton) selectionButton.getSelectedToggle();
-                String value = selected.getText();
-                System.out.println(value);
+        skinSelection(playerOne);
+        skinSelection(playerTwo);
+        setImageWidth(playerOne1, playerOne2, playerOne3, playerTwo1, playerTwo2, playerTwo3);
+    }
+
+    private void skinSelection(ToggleGroup player) {
+        player.selectedToggleProperty().addListener((observableValue, oldToggle, newToggle) -> {
+            if (player.getSelectedToggle() != null) {
+                ToggleButton selected = (ToggleButton) player.getSelectedToggle();
+
+                if (player == playerOne) {
+                    playerOneSkin = selected.getText();
+                    switch (playerOneSkin) {
+                        case "High Born":
+                            runtimeInfo.setPlayerOneClass(EntityClass.HIGH_BORN);
+                            break;
+                        case "Human":
+                            runtimeInfo.setPlayerOneClass(EntityClass.HUMAN);
+                            break;
+                        case "Sentinel":
+                            runtimeInfo.setPlayerOneClass(EntityClass.SENTINELS);
+                    }
+                } else {
+                    playerTwoSkin = selected.getText();
+                    switch (playerTwoSkin) {
+                        case "High Born":
+                            runtimeInfo.setPlayerTwoClass(EntityClass.HIGH_BORN);
+                            break;
+                        case "Human":
+                            runtimeInfo.setPlayerTwoClass(EntityClass.HUMAN);
+                            break;
+                        case "Sentinel":
+                            runtimeInfo.setPlayerTwoClass(EntityClass.SENTINELS);
+                    }
+                }
             }
         });
-        setImageWidth(selection1, selection2, selection3);
     }
 
     private void setImageWidth(ImageView... imageViews) { // the ... allows for zero or more arguments seperated by a comma, will pass argument as an array
         Rectangle2D screen = Screen.getPrimary().getVisualBounds();
-        final double imageWidth = screen.getWidth() * 0.2;
+        final double imageWidth = screen.getWidth() * 0.1;
         for (ImageView image : imageViews) {
             image.setFitWidth(imageWidth);
             image.setPreserveRatio(true);
@@ -50,6 +86,8 @@ public class SkinSelectionController implements Initializable {
 
     @FXML
     private void gameScene() {
+        log.info("Player 1 skin: " + playerOneSkin);
+        log.info("Player 2 skin: " + playerTwoSkin);
         parent.getChildren().clear();
         parent.getChildren().add(new SceneLoader().loadScene("MapSelection"));
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
index ee8ccd517fc9c48f3178e792d136dba3f20783e8..da4785be1762fa46a442be0e1d635a13ac357fe7 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
@@ -15,16 +15,14 @@ import java.net.URL;
 import java.util.ResourceBundle;
 
 public class StatisticsController implements Initializable {
-
     @FXML
     private Text blocks, deaths, gameTime, gamesLost, gamesWon, kills;
     @FXML
     private VBox parent;
     @FXML
     private PieChart kd, wl;
-    SceneLoader sceneLoader = new SceneLoader();
-
-    Persistence persistence = Persistence.getInstance();
+    private final SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
 
     public void mainMenuScene() {
         parent.getChildren().clear();
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/SceneLoader.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/SceneLoader.java
index 8c0e8b4a9487316777dd42b0823e07b737386208..6d89e2b373ccb0260f0593609158518990005b09 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/SceneLoader.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/SceneLoader.java
@@ -9,9 +9,7 @@ import org.apache.logging.log4j.Logger;
 import java.net.URL;
 
 public class SceneLoader {
-
     private static final Logger log = LogManager.getLogger(SceneLoader.class);
-
     private Pane view;
 
     //helper method for loading fxml files in the scene
@@ -25,11 +23,11 @@ public class SceneLoader {
 
             new FXMLLoader();
             view = FXMLLoader.load(filePath);
+            log.info("Scene switched to " + filePath);
 
         } catch (Exception e) {
             log.debug("Scene " + fileName + " not found");
         }
         return view;
     }
-
 }
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/ToggleButtonTransition.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/ToggleButtonTransition.java
index 94d51e4b2524cc0428678adadcf57b01e61dd643..a4c5684591d138be026fad29a6c05c188ad21ce9 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/ToggleButtonTransition.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/ToggleButtonTransition.java
@@ -6,17 +6,14 @@ import javafx.scene.control.skin.ToggleButtonSkin;
 import javafx.util.Duration;
 
 public class ToggleButtonTransition extends ToggleButtonSkin {
-    private final FadeTransition fadeIn;
-    private final FadeTransition fadeOut;
-
     public ToggleButtonTransition(ToggleButton toggleButton) {
         super(toggleButton);
 
-        fadeIn = new FadeTransition(Duration.millis(150));
+        FadeTransition fadeIn = new FadeTransition(Duration.millis(150));
         fadeIn.setNode(toggleButton);
         fadeIn.setToValue(1);
 
-        fadeOut = new FadeTransition(Duration.millis(150));
+        FadeTransition fadeOut = new FadeTransition(Duration.millis(150));
         fadeOut.setNode(toggleButton);
         fadeOut.setToValue(0.5);
 
diff --git a/src/main/resources/fxml/MenuBorderPane.fxml b/src/main/resources/fxml/MenuBorderPane.fxml
index ed87f4119563968953eef9ff3013783e8ce18a5e..24a64f9fcb594294872951120ed280565e40b334 100644
--- a/src/main/resources/fxml/MenuBorderPane.fxml
+++ b/src/main/resources/fxml/MenuBorderPane.fxml
@@ -7,7 +7,7 @@
 <?import javafx.scene.layout.StackPane?>
 <?import javafx.scene.text.Font?>
 
-<BorderPane id="mainMenu" fx:id="parent" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MenuBorderPaneController">
+<BorderPane id="mainMenu" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MenuBorderPaneController">
     <right>
         <Button fx:id="btnRight" mnemonicParsing="false" prefWidth="111.0" BorderPane.alignment="BOTTOM_CENTER">
             <graphic>
diff --git a/src/main/resources/fxml/SkinSelection.fxml b/src/main/resources/fxml/SkinSelection.fxml
index c8b09f8e6f80b3447949f928e38c900e368b22de..8e074b509d60f361acb6c7a63073fd407d51dfcc 100644
--- a/src/main/resources/fxml/SkinSelection.fxml
+++ b/src/main/resources/fxml/SkinSelection.fxml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
 <?import javafx.scene.control.ToggleButton?>
 <?import javafx.scene.control.ToggleGroup?>
 <?import javafx.scene.image.Image?>
@@ -10,34 +11,70 @@
 
 <VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="20.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.SkinSelectionController">
    <children>
+      <Label text="Player 1" />
       <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="40.0">
          <children>
-            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Elias">
+            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="High Born">
                <graphic>
-                  <ImageView fx:id="selection1" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
+                  <ImageView fx:id="playerOne1" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
                      <image>
-                        <Image url="@../textures/images/elias.png" />
+                        <Image url="@../textures/player/high_res/highBorn.png" />
                      </image>
                   </ImageView>
                </graphic>
                <toggleGroup>
-                  <ToggleGroup fx:id="selectionButton" />
+                  <ToggleGroup fx:id="playerOne" />
                </toggleGroup>
             </ToggleButton>
-            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Erzan" toggleGroup="$selectionButton">
+            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Human" toggleGroup="$playerOne">
                <graphic>
-                  <ImageView fx:id="selection2" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
+                  <ImageView fx:id="playerOne2" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
                      <image>
-                        <Image url="@../textures/images/erzan.png" />
+                        <Image url="@../textures/player/high_res/human.png" />
                      </image>
                   </ImageView>
                </graphic>
             </ToggleButton>
-            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Martin" toggleGroup="$selectionButton">
+            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Sentinel" toggleGroup="$playerOne">
                <graphic>
-                  <ImageView fx:id="selection3" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
+                  <ImageView fx:id="playerOne3" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
                      <image>
-                        <Image url="@../textures/images/martin.png" />
+                        <Image url="@../textures/player/high_res/sentinel.png" />
+                     </image>
+                  </ImageView>
+               </graphic>
+            </ToggleButton>
+         </children>
+      </HBox>
+      <Label text="Player 2" />
+      <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="40.0">
+         <children>
+            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="High Born">
+               <graphic>
+                  <ImageView fx:id="playerTwo1" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
+                     <image>
+                        <Image url="@../textures/player/high_res/highBorn.png" />
+                     </image>
+                  </ImageView>
+               </graphic>
+               <toggleGroup>
+                  <ToggleGroup fx:id="playerTwo" />
+               </toggleGroup>
+            </ToggleButton>
+            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Human" toggleGroup="$playerTwo">
+               <graphic>
+                  <ImageView fx:id="playerTwo2" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
+                     <image>
+                        <Image url="@../textures/player/high_res/human.png" />
+                     </image>
+                  </ImageView>
+               </graphic>
+            </ToggleButton>
+            <ToggleButton contentDisplay="TOP" mnemonicParsing="false" styleClass="skinSelection" text="Sentinel" toggleGroup="$playerTwo">
+               <graphic>
+                  <ImageView fx:id="playerTwo3" fitHeight="700.0" fitWidth="700.0" pickOnBounds="true" preserveRatio="true">
+                     <image>
+                        <Image url="@../textures/player/high_res/sentinel.png" />
                      </image>
                   </ImageView>
                </graphic>
diff --git a/src/main/resources/player/appSettings.json b/src/main/resources/player/appSettings.json
index 29ddb093e518e6f1540e962d650ed94caabb1c5f..b09c56e399848e7f331f341a39652fb9e499b789 100644
--- a/src/main/resources/player/appSettings.json
+++ b/src/main/resources/player/appSettings.json
@@ -1,4 +1,4 @@
 {
   "sfxVolume": 16,
-  "musicVolume": 39
+  "musicVolume": 0
 }
\ No newline at end of file
diff --git a/src/main/resources/player/playerAccount.json b/src/main/resources/player/playerAccount.json
index e4031451fd72b6bf10eb91b84f82aeb7f608f859..2580dc191f7349bc8b8f8e5435a9deaa65147908 100644
--- a/src/main/resources/player/playerAccount.json
+++ b/src/main/resources/player/playerAccount.json
@@ -1,5 +1,5 @@
 {
-  "playerName": "Jonas",
+  "playerName": "kaka",
   "accountPassword": "",
   "accountType": "LOCAL"
 }
\ No newline at end of file
diff --git a/src/main/resources/textures/player/high_res/highBorn.png b/src/main/resources/textures/player/high_res/highBorn.png
new file mode 100644
index 0000000000000000000000000000000000000000..130cd5b07eb6e42474abef8e60cf2af8232a0f06
Binary files /dev/null and b/src/main/resources/textures/player/high_res/highBorn.png differ
diff --git a/src/main/resources/textures/player/high_res/human.png b/src/main/resources/textures/player/high_res/human.png
new file mode 100644
index 0000000000000000000000000000000000000000..ecd69bc6b099bd4b899155b7f0e9199e9a49fb02
Binary files /dev/null and b/src/main/resources/textures/player/high_res/human.png differ
diff --git a/src/main/resources/textures/player/high_res/sentinel.png b/src/main/resources/textures/player/high_res/sentinel.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebcc6a9ffc8d66aa9b7bc5a5407787aef05ea62a
Binary files /dev/null and b/src/main/resources/textures/player/high_res/sentinel.png differ