diff --git a/README.md b/README.md
index 69625de7934d607289e90646606803cc8faefb41..d351a7e1c76dec53336acb562d9f67b5c8075daf 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
 ## Hier könnte ihre Werbung stehn
+
+### Known issues
+ - Videos sometimes don't load in windows 11 especially on weaker systems
diff --git a/pom.xml b/pom.xml
index 4cf921c1adaad2cf290231e1715fa044c64b067d..00cecae4b603bb2ef7a769e8effa5db5010b47d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,6 +65,18 @@
             <version>19.0.2.1</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.jtransc</groupId>
+            <artifactId>jtransc-rt</artifactId>
+            <version>0.5.0-ALPHA4</version>
+        </dependency>
+
+        <!--<dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+            <version>4.3.24.RELEASE</version>
+        </dependency>-->
+
         <dependency>
             <groupId>com.oracle.database.jdbc</groupId>
             <artifactId>ojdbc11</artifactId>
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 3dc79401a4a89941e5bcffa4b07dacbb45c14817..be1256f441fa09604694e890557db0bd53131531 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
@@ -49,7 +49,7 @@ public class CommunityMapController implements Initializable {
 //    TODO: create map preview
 
     @FXML
-    private void backButton() {   // for some reason compiler doesn't recognize method usage when 'back' is used as method name. Any other method name works however
+    private void backButton() {
         parent.getChildren().clear();
         parent.getChildren().add(new SceneLoader().loadScene("MapForge"));
     }
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 2c4472104e35751cedb56601d0b5f6b13f72e278..0ee284ce321557aafe682c4accff45c12625da6c 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
@@ -1,6 +1,9 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.DatabaseException;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.StartupThread;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.fxml.Initializable;
@@ -8,6 +11,8 @@ import javafx.scene.Cursor;
 import javafx.scene.layout.BorderPane;
 import javafx.scene.media.MediaPlayer;
 import javafx.scene.media.MediaView;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,12 +32,15 @@ public class IntroController implements Initializable {
     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) {
         introParent.setStyle("-fx-background-color: black;");
         introParent.setCursor(Cursor.NONE);
         createMediaPlayer();
+        new StartupThread().run();
     }
 
     private void createMediaPlayer() {
@@ -42,7 +50,11 @@ public class IntroController implements Initializable {
 
         mediaPlayer.setOnEndOfMedia(() -> {
             if (counter == videos.length - 1) {
-                videoEnd();
+                try {
+                    videoEnd();
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
             } else {
                 nextVideo();
             }
@@ -51,21 +63,42 @@ public class IntroController implements Initializable {
 //        TODO: make any button pressed work
         introParent.setOnMouseClicked((mouseEvent) -> {
             if (counter == videos.length - 1) {
-                videoEnd();
+                try {
+                    videoEnd();
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
             } else {
                 nextVideo();
             }
         });
     }
 
-    private void videoEnd() {
-//        TODO: check if player exists
-        try {
-            mediaPlayer.dispose();
-            introParent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml"))));
-        } catch (IOException e) {
-            throw new RuntimeException();
+    private void videoEnd() throws IOException {
+        boolean isStartUp = true, noAccount = false, statsLoaded = false;
+        while (isStartUp) {
+            try {
+                persistence.loadPlayerAccount();
+                persistence.verifyPlayerAccount();
+                mediaPlayer.dispose();
+                isStartUp = false;
+            } catch (DatabaseException e) {
+                noAccount = true;
+//            TODO: reset player account if account fails to load in loadPlayerAccount()
+            }
+            if (noAccount) {
+                introParent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml"))));
+            }
+        }
+        while (!statsLoaded) { // while loop because Martin said so
+            try {
+                persistence.loadPlayerStatistics();
+                statsLoaded = true;
+            } catch (DatabaseException e) {
+                log.error(e);
+            }
         }
+        introParent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml"))));
     }
 
     private void nextVideo() {
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 c71e7fc4804f06df9f0249a24e102b057c55ba7a..83a6d92e8b0dbe60af7cbbbe09a263afdb51a6b5 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.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.Exceptions.DatabaseException;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.control.Button;
@@ -17,6 +19,7 @@ public class MainMenuController implements Initializable {
     @FXML
     private Button exitButton;
     private final SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
 
     private void switchScene(String name) {
         parent.getChildren().clear();
@@ -44,7 +47,9 @@ public class MainMenuController implements Initializable {
     }
 
     @FXML
-    private void exit() {
+    private void exit() throws DatabaseException {
+        persistence.savePlayerStatistics();
+        persistence.saveSettings();
         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 7f57a6dd566a493f12e2c9ffdea4772df823f130..784361391329dab062e1c64e5aee944381861ff1 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
@@ -2,6 +2,8 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
 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.Persistence;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.layout.VBox;
@@ -13,6 +15,7 @@ public class MapForgeController {
     @FXML
     private VBox parent;
     SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
 
     @FXML
     private void mapEditorScene() {
@@ -30,13 +33,9 @@ public class MapForgeController {
     }
 
     @FXML
-    private void updateMapScene() {
-        try {
-            parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml"))));
-            MusicPlayerSingleton.getInstance().getMediaPlayer().dispose();
-        } catch (IOException e) {
-            throw new RuntimeException();
-        }
+    private void updateMapScene() throws DatabaseException {
+        persistence.updateCoreMaps();
+//        TODO: set message label if update was successful or not
     }
 
     @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
new file mode 100644
index 0000000000000000000000000000000000000000..d821334354bd487632d52077ffa4a3c21f6a1914
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java
@@ -0,0 +1,72 @@
+package de.hdm_stuttgart.battlearena.Controller;
+
+import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
+import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.MapData;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
+import javafx.scene.control.ToggleButton;
+import javafx.scene.control.ToggleGroup;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Text;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.ResourceBundle;
+
+public class MapSelectionController implements Initializable {
+    @FXML
+    private VBox boxBox, parent;
+    @FXML
+    private Text selectedMapText;
+
+    private int selectedMap;
+
+    private final SceneLoader sceneLoader = new SceneLoader();
+
+    private final ArrayList<MapData> coreMaps = Persistence.getInstance().getCoreMaps();
+
+    @Override
+    public void initialize(URL url, ResourceBundle resourceBundle) {
+        ToggleGroup group = new ToggleGroup();
+
+        for (int i = 0; i < coreMaps.size(); i++) {
+            ToggleButton toggleButton = new ToggleButton(coreMaps.get(i).getMapName());
+            toggleButton.setToggleGroup(group);
+            boxBox.getChildren().add(toggleButton);
+        }
+
+        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();
+                selectedMapText.setText(value);
+                System.out.println(value);
+            }
+        });
+    }
+
+    @FXML
+    private void gameScene() {
+        try {
+            RuntimeInfo.getInstance().setGameMap(coreMaps.get(selectedMap));
+            MusicPlayerSingleton.getInstance().getMediaPlayer().dispose();
+            parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/GameScene.fxml"))));
+        } catch (IOException e) {
+            throw new RuntimeException();
+        }
+    }
+
+    @FXML
+    private void backButton() {
+        parent.getChildren().clear();
+        parent.getChildren().add(sceneLoader.loadScene("SkinSelection"));
+    }
+}
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 81b05ca9a8de2670edb504e78a78fb3e20ca2ebd..392326c31e7e700ca491b955e92531d125bf9e5f 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
@@ -3,6 +3,7 @@ package de.hdm_stuttgart.battlearena.Controller;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
 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.geometry.Rectangle2D;
@@ -35,11 +36,12 @@ public class MenuBorderPaneController implements Initializable {
     private final String[] videoFiles = {"depression", "allMyFellas", "wooOOoo", "myMind", "dogCheese", "gta", "cat", "bobama", "roomba", "firework", "cheezburger",
             "kangaroo", "lifeCouldBeMonke", "seal", "imNotYou", "parkingTickets", "russianKid", "rejectHumanity", "horse", "catSitting", "pablo", "holyCrap",
             "lessGoo", "sadCat", "basketball", "yoinkySploinky", "msPuff", "=D", "banana", "chaCha", "async", "sadHorse", "minecraftCat", "muecke", "top10Cats", "dog",
-            "pot", "mineCraftCat2", "catEating", "bear", "pancake", "frog", "gtfo", "carl", "dog2", "slippery", "wolf", "legCat", "sad", "waaahhh"};
+            "pot", "mineCraftCat2", "catEating", "catJump", "bear", "pancake", "frog", "gtfo", "carl", "dog2", "slippery", "wolf", "legCat", "sad", "waaahhh"};
 
     List<String> shuffledVideos = Arrays.asList(videoFiles);
 
     Rectangle2D screen = Screen.getPrimary().getVisualBounds();
+
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
         center.getChildren().add(sceneLoader.loadScene("MainMenu"));
@@ -107,6 +109,7 @@ public class MenuBorderPaneController implements Initializable {
     private void backgroundMusic(String file) {
         Media media = new Media(new File("src/main/resources/sound/music/" + file).toURI().toString());
         musicPlayer = new MediaPlayer(media);
+        musicPlayer.setVolume((double) Persistence.getInstance().getSettings().getMusicVolume() / 100);
         musicPlayer.setCycleCount(MediaPlayer.INDEFINITE);
         musicPlayer.play();
         MusicPlayerSingleton.getInstance().setMediaPlayer(musicPlayer);
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 a3c7526665111d073af465d5c74599952442b63b..a04eb1c6d84b615f3eff95b33d86485cb0ef5b51 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
@@ -2,6 +2,7 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.fxml.Initializable;
@@ -17,14 +18,16 @@ public class SettingsController implements Initializable {
     @FXML
     private VBox parent;
     @FXML
-    private Slider musicVolume, sfxVolume;
+    private Slider musicSlider, sfxSlider;
     SceneLoader sceneLoader = new SceneLoader();
-    public double music;
+    private int musicVolume, sfxVolume;
     MusicPlayerSingleton musicPlayer = MusicPlayerSingleton.getInstance();
+    Persistence persistence = Persistence.getInstance();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
         setMusicVolume();
+        setSfxVolume();
     }
 
     @FXML
@@ -40,17 +43,20 @@ public class SettingsController implements Initializable {
     }
 
     private void setMusicVolume() {
-//        need a runtime database to save volume
-        musicVolume.valueProperty().addListener((observableValue, oldValue, newValue) -> {
-            setMusic(musicVolume);
-            System.out.println(music);
+        musicSlider.setValue(persistence.getSettings().getMusicVolume());
+        musicSlider.valueProperty().addListener((observableValue, oldValue, newValue) -> {
+            musicVolume = newValue.intValue();
+            persistence.getSettings().setMusicVolume(musicVolume);
+            musicPlayer.getMediaPlayer().setVolume((double) musicVolume / 100);
         });
     }
 
-    private void setMusic(Slider slider) {
-        slider.valueProperty().addListener(((observableValue, oldValue, newValue) -> {
-            music = newValue.doubleValue() / 100;
-            musicPlayer.getMediaPlayer().setVolume(music);
+    private void setSfxVolume(){
+        sfxSlider.setValue(persistence.getSettings().getSfxVolume());
+        sfxSlider.valueProperty().addListener(((observableValue, oldValue, newValue) -> {
+            sfxVolume = newValue.intValue();
+            persistence.getSettings().setSfxVolume(sfxVolume);
+//            sfxPlayer.getMediaPlayer().setVolume((double) sfxVolume / 100);
         }));
     }
 }
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 6015655a06d8dad0530362087a84c6e87e646f57..9e27cab1e0a87b52e01a1ea63b84ba6cf6b46006 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
@@ -54,11 +54,9 @@ public class SkinSelectionController implements Initializable {
 
     @FXML
     private void gameScene() {
-        try {
-            MusicPlayerSingleton.getInstance().getMediaPlayer().dispose();
-            parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/GameScene.fxml"))));
-        } catch (IOException e) {
-            throw new RuntimeException();
-        }
+
+
+        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 009c8a94b5f4a68c3c1b21ddcf194621be698a9c..ee8ccd517fc9c48f3178e792d136dba3f20783e8 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
@@ -1,6 +1,7 @@
 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.beans.binding.Bindings;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
@@ -23,6 +24,8 @@ public class StatisticsController implements Initializable {
     private PieChart kd, wl;
     SceneLoader sceneLoader = new SceneLoader();
 
+    Persistence persistence = Persistence.getInstance();
+
     public void mainMenuScene() {
         parent.getChildren().clear();
         parent.getChildren().add(sceneLoader.loadScene("MainMenu"));
@@ -30,17 +33,27 @@ public class StatisticsController implements Initializable {
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
-        iniPieChartkd();
-        iniPieChartwl();
+        iniPieChartKD();
+        iniPieChartWL();
         kd.setLegendVisible(false);
         wl.setLegendVisible(false);
+        setLabels();
+    }
+
+    private void setLabels() {
+        kills.setText(String.valueOf(persistence.getStatistics().getKills()));
+        gamesWon.setText(Integer.toString(persistence.getStatistics().getGamesWon()));
+        gamesLost.setText(String.valueOf(persistence.getStatistics().getGamesLost()));
+        gameTime.setText(Integer.toString(persistence.getStatistics().getGameTimeInHours()));
+        deaths.setText(String.valueOf(persistence.getStatistics().getDeaths()));
+        blocks.setText(Integer.toString(persistence.getStatistics().getBlocksDestroyed()));
     }
 
-    public void iniPieChartkd() {
+    public void iniPieChartKD() {
         ObservableList<PieChart.Data> pieChartData =
                 FXCollections.observableArrayList(
-                        new PieChart.Data("Kills", 20),
-                        new PieChart.Data("Deaths", 12));
+                        new PieChart.Data("Kills", persistence.getStatistics().getKills()),
+                        new PieChart.Data("Deaths", persistence.getStatistics().getDeaths()));
 
         pieChartData.forEach(data ->
                 data.nameProperty().bind(
@@ -52,11 +65,11 @@ public class StatisticsController implements Initializable {
         kd.getData().addAll(pieChartData);
     }
 
-    public void iniPieChartwl() {
+    public void iniPieChartWL() {
         ObservableList<PieChart.Data> pieChartData =
                 FXCollections.observableArrayList(
-                        new PieChart.Data("Wins", 3),
-                        new PieChart.Data("Losses", 5));
+                        new PieChart.Data("Wins", persistence.getStatistics().getGamesWon()),
+                        new PieChart.Data("Losses", persistence.getStatistics().getGamesLost()));
 
         pieChartData.forEach(data ->
                 data.nameProperty().bind(
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java b/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java
index 5ba11eb60e0f13ae13883241d2a96279e5f58025..dd93c23719f1f4cb260c6b9da8a0f1f1fac2b475 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java
@@ -1,6 +1,11 @@
 package de.hdm_stuttgart.battlearena.Main;
 
+
+import de.hdm_stuttgart.battlearena.Model.Sound.MusicType;
+import de.hdm_stuttgart.battlearena.Model.Sound.SFX;
+import de.hdm_stuttgart.battlearena.Model.Sound.SoundManager;
 import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler;
+
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
 import javafx.geometry.Rectangle2D;
@@ -30,6 +35,7 @@ public class Main extends Application {
 
     @Override
     public void start(Stage stage) throws Exception {
+
 //        loading font in start() because CSS can't handle whitespace in folder names
         Font.loadFont(getClass().getResourceAsStream("/fonts/StarshipShadow.ttf"), 50);
 
@@ -53,6 +59,17 @@ public class Main extends Application {
         scene.getStylesheets().add(Objects.requireNonNull(this.getClass().getResource("/styles/style.css")).toExternalForm());
         stage.setScene(scene);
 
+
+        SoundManager soundManager = new SoundManager();
+
+        stage.setOnCloseRequest(event -> {
+            if (soundManager != null) {
+                soundManager.stopMusic();
+            }
+        });
+
+        soundManager.playMusic(MusicType.GAME);
+
         stage.show();
         log.debug("Project started successfully!");
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/ISoundManager.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/ISoundManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..7f31c780e19380b4f58e02ab5a854d8b25ea2019
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/ISoundManager.java
@@ -0,0 +1,16 @@
+package de.hdm_stuttgart.battlearena.Model.Sound;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.nio.file.Path;
+import java.util.List;
+
+public interface ISoundManager {
+
+
+
+    void playSoundEffect() throws InterruptedException, MalformedURLException; //plays sound effects only
+
+    List<Path> getFilePathsFromResources(Path folderPath) throws IOException; // gets file-paths in a Folder as a list
+
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicType.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicType.java
new file mode 100644
index 0000000000000000000000000000000000000000..b7d5924e85a9559d88db4bf4a295fd235fc2aa5b
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicType.java
@@ -0,0 +1,16 @@
+package de.hdm_stuttgart.battlearena.Model.Sound;
+
+public enum MusicType {
+    MENU("src/main/resources/sound/music/menu"),
+    OPTIONS("src/main/resources/sound/music/options"),
+    GAME("src/main/resources/sound/music/game");
+
+    private String path;
+    MusicType(String path){
+        this.path = path;
+    }
+
+    public String getPath(){
+        return path;
+    }
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SFX.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SFX.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c4dae812049378d829bd1a0c1d6d3504e350530
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SFX.java
@@ -0,0 +1,17 @@
+package de.hdm_stuttgart.battlearena.Model.Sound;
+
+public enum SFX {
+    GRASS("/sound/sfx/steps/grass"),
+    STONE("/sound/sfx/steps/stone"),
+    COLLISION("/sound/sfx/collision"),
+    ATTACK("/sound/sfx/attack");
+
+    private String path;
+    SFX(String path){
+        this.path = path;
+    }
+
+    public String getPath(){
+        return path;
+    }
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundManager.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..41af98775814a73c36d2b5273f29540449d2bbbb
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundManager.java
@@ -0,0 +1,85 @@
+package de.hdm_stuttgart.battlearena.Model.Sound;
+
+
+import javafx.scene.media.Media;
+import javafx.scene.media.MediaPlayer;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+
+import javafx.scene.media.AudioClip;
+
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Random;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class SoundManager implements ISoundManager {
+    private static final Logger log = LogManager.getLogger(SoundManager.class);
+
+
+    private final ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
+    private final List<SFX> soundEffectsRunning = new ArrayList<>();
+    private MediaPlayer mediaPlayer;
+
+    private final boolean stopLoop = false;
+    private List<Path> walkingSFXPaths;
+
+    //Todo Make music play
+    public void playMusic(MusicType musicType) throws IOException {
+        Path pathTypeOfMusic = Paths.get(musicType.getPath());
+        List<Path> musicPaths = getFilePathsFromResources(pathTypeOfMusic);
+        Random random = new Random();
+        int min = 0;
+        int max = musicPaths.size() - 1;
+        int randomIndex = random.nextInt(max - min + 1 ) + min;
+        String randomMusic = musicPaths.get(randomIndex).toString();
+        String normalizedPath = Paths.get(randomMusic).toString().replace('\\', '/');
+        String resource = normalizedPath.substring(18);
+        log.info(resource);
+        Thread thread = new Thread(() -> {
+            Media media = new Media(getClass().getResource(resource).toExternalForm());
+            mediaPlayer = new MediaPlayer(media);
+            mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);
+            mediaPlayer.play();
+            log.info("Music is playing");
+
+        });
+        thread.setDaemon(true);
+        thread.start();
+    }
+
+    public void stopMusic(){
+        if (mediaPlayer != null) {
+            mediaPlayer.dispose(); // Dispose of the MediaPlayer instance
+        }
+    }
+
+    @Override
+    public void playSoundEffect() throws InterruptedException, MalformedURLException {
+
+    }
+
+
+
+    public List<Path> getFilePathsFromResources(Path folderPath) throws IOException {
+        List<Path> result;
+        try (Stream<Path> walk = Files.walk(folderPath)) {
+            result = walk.filter(Files::isRegularFile)
+                    .collect(Collectors.toList());
+        }
+        return result;
+    }
+
+}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 0e27c537bfec8ecab654f48ede3fb580f8adf0dd..7170d5f5377d9044dc83b6f3705c684f0db71786 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -3,24 +3,24 @@ module gui {
     requires javafx.fxml;
     requires javafx.media;
     requires org.apache.logging.log4j;
+    requires java.desktop;
     requires java.sql;
     requires com.google.gson;
     requires com.oracle.database.jdbc;
     requires java.naming;
 
-
-    opens de.hdm_stuttgart.battlearena to javafx.fxml;
     opens de.hdm_stuttgart.battlearena.Controller to javafx.fxml;
     opens de.hdm_stuttgart.battlearena.Model.DataStorage.Classes to com.google.gson;
     opens de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions to com.google.gson;
     opens de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Utilities to com.google.gson;
+    opens de.hdm_stuttgart.battlearena to javafx.fxml;
+    opens de.hdm_stuttgart.battlearena.Model.Sound to javafx.media;
+    opens de.hdm_stuttgart.battlearena.Controller.Utilities to javafx.fxml;
+
     exports de.hdm_stuttgart.battlearena.Main;
     exports de.hdm_stuttgart.battlearena.Controller;
     exports de.hdm_stuttgart.battlearena.Model.Entity;
     exports de.hdm_stuttgart.battlearena.Model.Inputs;
     exports de.hdm_stuttgart.battlearena.Model.Map;
     exports de.hdm_stuttgart.battlearena.Controller.Utilities;
-    exports de.hdm_stuttgart.battlearena.Model.Multiplayer;
-    opens de.hdm_stuttgart.battlearena.Controller.Utilities to javafx.fxml;
-    opens de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.ENUMs to com.google.gson;
 }
\ No newline at end of file
diff --git a/src/main/resources/sound/sfx/Footsteps, Human, Dirty Ground, Walk SND62078.wav b/src/main/resources/Footsteps, Human, Dirty Ground, Walk SND62078.wav
similarity index 100%
rename from src/main/resources/sound/sfx/Footsteps, Human, Dirty Ground, Walk SND62078.wav
rename to src/main/resources/Footsteps, Human, Dirty Ground, Walk SND62078.wav
diff --git a/src/main/resources/fxml/MapSelection.fxml b/src/main/resources/fxml/MapSelection.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..1be6734bac78aa59dd7db7a771411adfd64dd828
--- /dev/null
+++ b/src/main/resources/fxml/MapSelection.fxml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Accordion?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ScrollPane?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.Pane?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Text?>
+
+<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.MapSelectionController">
+   <children>
+      <Pane VBox.vgrow="ALWAYS" />
+      <HBox alignment="TOP_CENTER" spacing="20.0">
+         <children>
+            <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Maps:" />
+            <Accordion>
+              <panes>
+                <TitledPane fx:id="roundsTitledPane" text="Select">
+                     <content>
+                        <ScrollPane minViewportHeight="40.0">
+                           <content>
+                              <VBox fx:id="boxBox" />
+                           </content>
+                        </ScrollPane>
+                     </content>
+                </TitledPane>
+              </panes>
+            </Accordion>
+         </children>
+         <VBox.margin>
+            <Insets />
+         </VBox.margin>
+      </HBox>
+      <HBox alignment="TOP_CENTER" maxWidth="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="213.0" spacing="20.0">
+         <children>
+            <Text fx:id="selectedMapText" strokeType="OUTSIDE" strokeWidth="0.0" />
+         </children>
+      </HBox>
+      <Button mnemonicParsing="false" onAction="#gameScene" text="Start" />
+      <Button mnemonicParsing="false" onAction="#backButton" text="Back">
+         <VBox.margin>
+            <Insets bottom="50.0" />
+         </VBox.margin>
+      </Button>
+      <Pane VBox.vgrow="ALWAYS" />
+   </children>
+</VBox>
diff --git a/src/main/resources/fxml/MultiplayerCreate.fxml b/src/main/resources/fxml/MultiplayerCreate.fxml
index 3cf21a91e290fca2da1b2516320c1feb50a99cee..f95e2126f13aee4f89541b835ef2c90ffbbc7d9b 100644
--- a/src/main/resources/fxml/MultiplayerCreate.fxml
+++ b/src/main/resources/fxml/MultiplayerCreate.fxml
@@ -47,7 +47,7 @@
             <Insets top="20.0" />
          </VBox.margin>
       </AnchorPane>
-      <Button mnemonicParsing="false" text="Start" />
+      <Button mnemonicParsing="false" onAction="#start" text="Start" />
       <Button mnemonicParsing="false" onAction="#backButton" text="Back" />
       <Pane VBox.vgrow="ALWAYS" />
       <Pane VBox.vgrow="ALWAYS" />
diff --git a/src/main/resources/fxml/PlayerCreateScene.fxml b/src/main/resources/fxml/PlayerCreateScene.fxml
index 1563facf396815b701f237fdab3dd7e3769c7951..5200c6495466b6bf62772664a6f3a093ac2f5453 100644
--- a/src/main/resources/fxml/PlayerCreateScene.fxml
+++ b/src/main/resources/fxml/PlayerCreateScene.fxml
@@ -7,7 +7,6 @@
 <?import javafx.scene.media.MediaView?>
 <?import javafx.scene.text.Text?>
 
-
 <BorderPane fx:id="parent" 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.PlayerCreateController">
    <center>
       <StackPane BorderPane.alignment="CENTER">
diff --git a/src/main/resources/fxml/Settings.fxml b/src/main/resources/fxml/Settings.fxml
index 6cab6585ef8f19e015fc3645684934a599ee9aec..7b8950fc2664c2e1e041ce2d05b7b46986f01d64 100644
--- a/src/main/resources/fxml/Settings.fxml
+++ b/src/main/resources/fxml/Settings.fxml
@@ -15,13 +15,13 @@
                   <VBox alignment="CENTER" VBox.vgrow="ALWAYS">
                      <children>
                         <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Music volume:" />
-                        <Slider fx:id="musicVolume" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" VBox.vgrow="NEVER" />
+                        <Slider fx:id="musicSlider" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" VBox.vgrow="NEVER" />
                      </children>
                   </VBox>
                   <VBox alignment="CENTER" VBox.vgrow="ALWAYS">
                      <children>
                         <Text strokeType="OUTSIDE" strokeWidth="0.0" text="SFX volume:" />
-                        <Slider fx:id="sfxVolume" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" />
+                        <Slider fx:id="sfxSlider" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" />
                      </children>
                   </VBox>
                </children>
diff --git a/src/main/resources/player/appSettings.json b/src/main/resources/player/appSettings.json
index ac6b7e58fa58ee25e2070c5cdfb9b8324bdddc6b..ec5bc62a909f2065d81be4cfd6c494b9e10715fb 100644
--- a/src/main/resources/player/appSettings.json
+++ b/src/main/resources/player/appSettings.json
@@ -1,4 +1,4 @@
 {
   "sfxVolume": 50,
-  "musicVolume": 50
+  "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 ad25fb8ab5d0aeda7756b512127b84937090f676..60070b6ed6a4c8153907eaf7e737e2e997fb3377 100644
--- a/src/main/resources/player/playerAccount.json
+++ b/src/main/resources/player/playerAccount.json
@@ -1,5 +1,5 @@
 {
   "playerName": "Player1",
   "accountPassword": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
-  "accountType": "ONLINE"
+  "accountType": "LOCAL"
 }
\ No newline at end of file
diff --git a/src/main/resources/player/playerStatsLocal.json b/src/main/resources/player/playerStatsLocal.json
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e51de779c74b6c93fe347b5bf263508c23fff2c9 100644
--- a/src/main/resources/player/playerStatsLocal.json
+++ b/src/main/resources/player/playerStatsLocal.json
@@ -0,0 +1,8 @@
+{
+  "gamesLost": 5,
+  "gamesWon": 9,
+  "kills": 30,
+  "deaths": 20,
+  "blocksDestroyed": 200,
+  "gameTime": 3966480
+}
\ No newline at end of file
diff --git a/src/main/resources/sound/music/musicPlaceholder.mp3 b/src/main/resources/sound/music/game/musicPlaceholder.mp3
similarity index 100%
rename from src/main/resources/sound/music/musicPlaceholder.mp3
rename to src/main/resources/sound/music/game/musicPlaceholder.mp3
diff --git a/src/main/resources/sound/music/menu/musicPlaceholder.wav b/src/main/resources/sound/music/menu/musicPlaceholder.wav
new file mode 100644
index 0000000000000000000000000000000000000000..e10258b8b48d0253ca1a3141482ee600c96d58e9
Binary files /dev/null and b/src/main/resources/sound/music/menu/musicPlaceholder.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 1.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 1.wav
new file mode 100644
index 0000000000000000000000000000000000000000..fb7dc6572c0c0232ddd17049a0801d8de0ef0035
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 1.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 10.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 10.wav
new file mode 100644
index 0000000000000000000000000000000000000000..7edaf5417e8f65c81092fbae60f309d0c469ae44
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 10.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 11.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 11.wav
new file mode 100644
index 0000000000000000000000000000000000000000..52dbe6393a2855313ab661be65b0cfa8c85838c8
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 11.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 12.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 12.wav
new file mode 100644
index 0000000000000000000000000000000000000000..24f9a5f098b6f55465cfbe41edac6324985396b2
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 12.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 13.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 13.wav
new file mode 100644
index 0000000000000000000000000000000000000000..ead5ebf730e986b5300ae859cb7804d9c5025bc6
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 13.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 14.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 14.wav
new file mode 100644
index 0000000000000000000000000000000000000000..128c1d579f44bace7190a3c855673eee901c98ec
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 14.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 15.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 15.wav
new file mode 100644
index 0000000000000000000000000000000000000000..e2c2c54985afc50b3f3f1de45b6dd68ae8c0db00
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 15.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 16.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 16.wav
new file mode 100644
index 0000000000000000000000000000000000000000..b28f00628e321a05293fa07c73503abc9cc9ec37
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 16.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 17.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 17.wav
new file mode 100644
index 0000000000000000000000000000000000000000..6481be5c73f1137e3b10f8483819292d3376056b
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 17.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 18.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 18.wav
new file mode 100644
index 0000000000000000000000000000000000000000..f828b12669df1b8a01a4956cc178bd0bed24243d
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 18.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 19.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 19.wav
new file mode 100644
index 0000000000000000000000000000000000000000..4e2be3515c1fdfc95226033cf304f56be65a5b6c
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 19.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 2.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 2.wav
new file mode 100644
index 0000000000000000000000000000000000000000..87570339d853042dd6dc4fcbd7b871ec3afcee34
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 2.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 20.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 20.wav
new file mode 100644
index 0000000000000000000000000000000000000000..85a71f7d9764cae6a3220c38393336cf320cb284
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 20.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 3.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 3.wav
new file mode 100644
index 0000000000000000000000000000000000000000..ba37dc8a23965323887983518a5e9274ff1938f6
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 3.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 4.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 4.wav
new file mode 100644
index 0000000000000000000000000000000000000000..e3acb0eb0e6d900fa67fc2500c06be7ab0383d16
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 4.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 5.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 5.wav
new file mode 100644
index 0000000000000000000000000000000000000000..dabe68f4c735ded390aa3de52d293e31ef0b4967
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 5.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 6.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 6.wav
new file mode 100644
index 0000000000000000000000000000000000000000..ce9dd0eb336d5129f78ceac527e28f60f39b554f
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 6.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 7.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 7.wav
new file mode 100644
index 0000000000000000000000000000000000000000..71e061472f1fddae9fbaa2ae5a186a71f078a008
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 7.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 8.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 8.wav
new file mode 100644
index 0000000000000000000000000000000000000000..9b8538a47aaa357ffcbe6bc8223809584be19e2c
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 8.wav differ
diff --git a/src/main/resources/sound/sfx/steps/grass/steps - Track 9.wav b/src/main/resources/sound/sfx/steps/grass/steps - Track 9.wav
new file mode 100644
index 0000000000000000000000000000000000000000..6ea17cb32406c61630d7975713742719070d3ef6
Binary files /dev/null and b/src/main/resources/sound/sfx/steps/grass/steps - Track 9.wav differ
diff --git a/src/main/resources/styles/style.css b/src/main/resources/styles/style.css
index 2bb5cd89b79625f3392d4701dcf93ac9fb88d7f2..e676c8daadf56536c73d3bf8dd515a7c5a7533cd 100644
--- a/src/main/resources/styles/style.css
+++ b/src/main/resources/styles/style.css
@@ -4,7 +4,7 @@
 }
 
 #button {
-    -fx-text-fill: black;
+    -fx-text-fill: #454545;
 }
 
 .root {
diff --git a/src/main/resources/videos/catJump.mp4 b/src/main/resources/videos/catJump.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..cce5bdb3f5ecb0d515d9802848cd742d8b6bcb56
Binary files /dev/null and b/src/main/resources/videos/catJump.mp4 differ
diff --git a/src/main/resources/videos/sad.mp4 b/src/main/resources/videos/sad.mp4
index 9eb120c9e461edaed7858c02a42d44dc25f49e31..1868f52e473cad115b0dbe455c642211e5c50e81 100644
Binary files a/src/main/resources/videos/sad.mp4 and b/src/main/resources/videos/sad.mp4 differ