diff --git a/out/artifacts/bagel_jar/bagel.jar b/out/artifacts/bagel_jar/bagel.jar
deleted file mode 100644
index 2b915e213697e81500ccf9ed19a499a0e238ff7b..0000000000000000000000000000000000000000
Binary files a/out/artifacts/bagel_jar/bagel.jar and /dev/null differ
diff --git a/src/Level/EndPanel.java b/src/Level/EndPanel.java
index abc578f472c431d3bb51a5dfe487f863f21f59b5..ab1f2e1dfc7eee8b7c60c80ec58a1f4b157f43e1 100644
--- a/src/Level/EndPanel.java
+++ b/src/Level/EndPanel.java
@@ -19,11 +19,10 @@ public class EndPanel extends Pane {
 
     private boolean playSound = false;
 
-    private final int deadSound;
+    private static final int deadSound = MusicPlayerManager.getInstance().addMusic(new MusicPlayer("res/ActorExtensionPack/Sound/wav/DeadSound.wav"));
 
     public EndPanel(Level castToLevel) {
         this.castToLevel = castToLevel;
-        deadSound = MusicPlayerManager.getInstance().addMusic(new MusicPlayer("res/ActorExtensionPack/Sound/wav/DeadSound.wav"));
     }
 
     @Override
diff --git a/src/Level/Level.java b/src/Level/Level.java
index a6a7abdfd2d36153d377a58b923cb9c54ed5f5f9..ac545fe2befb96b927257997acf3040fe663f431 100644
--- a/src/Level/Level.java
+++ b/src/Level/Level.java
@@ -84,7 +84,7 @@ public class Level {
 
     private boolean hasBeginnerPanel = false;
 
-    Button restartButton = new Button(new Image("res/ActorExtensionPack/UI/restart.png"), new Vec2D(817, 0)) {
+    private Button restartButton = new Button(new Image("res/ActorExtensionPack/UI/restart.png"), new Vec2D(817, 0)) {
         @Override
         public void event() {
             if (currentStage != SELECT_STAGE) {
@@ -529,7 +529,7 @@ public class Level {
         actors.clear();
         currentStage = SELECT_STAGE;
         state = CONTINUING;
-        MusicPlayerManager.getInstance().stopAll();
+        
         MusicPlayerManager.getInstance().playSingleTrack(GameStage.playMusic, MusicPlayer.LOOP_OPTION);
         endPanel.setPlaySound(false);
         loadCSV(filename);
diff --git a/src/Music/MusicPlayer.java b/src/Music/MusicPlayer.java
index b90baf5c2823b0156a305d138ef9bf5dc24fc950..7879dcc3d2e2405c42a49b5734e87c20c8683a93 100644
--- a/src/Music/MusicPlayer.java
+++ b/src/Music/MusicPlayer.java
@@ -19,15 +19,18 @@ public class MusicPlayer {
 
     public void play(int option) {
         if (isPlaying) {
-            player.close();
-            player.stop();
+            if (player.isRunning()) {
+                player.stop();
+            }
         }
         File musicFile = new File(musicPath);
         try {
             //play music
             AudioInputStream audioInput = AudioSystem.getAudioInputStream(musicFile);
             player = AudioSystem.getClip();
-            player.open(audioInput);
+            if (!player.isOpen()) {
+                player.open(audioInput);
+            }
             player.start();
             isPlaying = true;
             if (option == LOOP_OPTION) {
@@ -40,9 +43,17 @@ public class MusicPlayer {
 
     public void stop() {
         if (isPlaying) {
-            player.stop();
-            player.close();
+            if (player.isRunning()) {
+                player.stop();
+            }
+            if (player.isOpen()) {
+                player.close();
+            }
             isPlaying = false;
         }
     }
+
+    public boolean isPlaying() {
+        return isPlaying;
+    }
 }
diff --git a/src/Music/MusicPlayerManager.java b/src/Music/MusicPlayerManager.java
index bd7a8def2cc860de586fb5995a67508c99346a65..8d5ead7d889cda7096efb02cf68734e6b0524c0f 100644
--- a/src/Music/MusicPlayerManager.java
+++ b/src/Music/MusicPlayerManager.java
@@ -47,7 +47,9 @@ public class MusicPlayerManager {
     public void stopAll() {
         currentPlayingSingleTrack = NONE;
         for (MusicPlayer musicPlayer : musicPlayers) {
-            musicPlayer.stop();
+            if (musicPlayer.isPlaying()) {
+                musicPlayer.stop();
+            }
         }
     }
 }
diff --git a/src/ShadowLifeGame.java b/src/ShadowLifeGame.java
index 023a2277917dcd514423305a0686fcbc972f3885..67a1895c726406dd61b351c66508fa86f6e8b779 100644
--- a/src/ShadowLifeGame.java
+++ b/src/ShadowLifeGame.java
@@ -173,6 +173,7 @@ public class ShadowLifeGame extends AbstractGame {
             progress.playAt(progressPosition);
             //check for the time pass
             if (loadCount > LOADING_TIME) {
+                MusicPlayerManager.getInstance().stopAll();
                 progress.replay();
                 loadCount = RESET;
                 GameStage.getInstance().goTo(GameStage.getInstance().getCurrentStage() - GameStage.LOADING);
diff --git a/src/UI/Button.java b/src/UI/Button.java
index e1280900ccb1aa6e90ca1cbd6de4352c7bb63280..837f1d556bc6f38b6f5370e1ec3db63aab8159a7 100644
--- a/src/UI/Button.java
+++ b/src/UI/Button.java
@@ -13,7 +13,7 @@ public abstract class Button {
 
     private final AABB boundingBox;
     private final Image button;
-    private final int buttonPressedSound = MusicPlayerManager.getInstance().addMusic(new MusicPlayer("res/ActorExtensionPack/Sound/wav/ButtonPressed.wav"));
+    private static final int buttonPressedSound = MusicPlayerManager.getInstance().addMusic(new MusicPlayer("res/ActorExtensionPack/Sound/wav/ButtonPressed.wav"));
 
     public Button(Image button, Vec2D position) {
         this.button = button;
diff --git a/src/actor/Skeleton.java b/src/actor/Skeleton.java
index 599b9c9b3359dfadb2320041f11e61031743f140..555a355117d44a24162b44599bf5c8969562b375 100644
--- a/src/actor/Skeleton.java
+++ b/src/actor/Skeleton.java
@@ -29,7 +29,6 @@ public class Skeleton extends Actor {
 
     private int currentType;
 
-
     public Skeleton(Vec2D spawnPoint, int direction, int wanderLoop) {
         super(spawnPoint);
         if (getAnimationManager() == null) {