diff --git a/Assets/Scripts/DataPersistance/Data/GameData.cs b/Assets/Scripts/DataPersistance/Data/GameData.cs
index 6edb16289057da9aa6644f8c8cfe3bf9855412d8..c833c36ffcdb9de4b835646f9602b5ab99e9e106 100644
--- a/Assets/Scripts/DataPersistance/Data/GameData.cs
+++ b/Assets/Scripts/DataPersistance/Data/GameData.cs
@@ -10,6 +10,7 @@ public class GameData
     public int playerHealth;
     public Vector3 playerPosition;
     public int balance;
+    public int level;
 
     public float damagePercent;
 
@@ -34,7 +35,7 @@ public class GameData
         this.damagePercent = 1;
         this.playerPosition = Vector3.zero;
         this.balance = 0;
-
+        this.level = 0;
 
 
         this.healingPetHealths = new List<int>();
diff --git a/Assets/Scripts/Managers/LevelManager.cs b/Assets/Scripts/Managers/LevelManager.cs
index 4ea5f0aac19dd395f859e7fd9deae1dd35f0e2f6..0628783e186643f94e0d2f3d380802105c21ae2e 100644
--- a/Assets/Scripts/Managers/LevelManager.cs
+++ b/Assets/Scripts/Managers/LevelManager.cs
@@ -5,11 +5,11 @@ using UnityEngine.UI;
 
 namespace Nightmare
 {
-    public class LevelManager : MonoBehaviour
+    public class LevelManager : MonoBehaviour, IDataPersistance
     {
         public string[] levels;
 
-        private int currentLevel = 0;
+        private int currentLevel;
         private Scene currentScene;
         private PlayerMovement playerMove;
         private Vector3 playerRespawn;
@@ -27,8 +27,7 @@ namespace Nightmare
         void Start()
         {
             cinema = FindObjectOfType<CinematicController>();
-            SceneManager.LoadSceneAsync(levels[0], LoadSceneMode.Additive);
-            playerMove = FindObjectOfType<PlayerMovement>();
+            // SceneManager.LoadSceneAsync(levels[this.currentLevel], LoadSceneMode.Additive);            playerMove = FindObjectOfType<PlayerMovement>();
             playerRespawn = playerMove.transform.position;
         }
 
@@ -63,7 +62,7 @@ namespace Nightmare
                 Debug.Log("Setting " + TimerTextComp.gameObject.name + " to inactive.");
                 QuestTextComp.gameObject.SetActive(false);
                 Debug.Log("Setting " + QuestTextComp.gameObject.name + " to inactive.");
-            } 
+            }
             else
             {
                 TimerTextComp.gameObject.SetActive(true);
@@ -125,5 +124,15 @@ namespace Nightmare
         {
             return currentLevel;
         }
+        public void LoadData(GameData data)
+        {
+            this.currentLevel = data.level;
+            SceneManager.LoadSceneAsync(levels[this.currentLevel], LoadSceneMode.Additive);
+        }
+
+        public void SaveData(ref GameData data)
+        {
+            data.level = this.currentLevel + 1;
+        }
     }
 }
\ No newline at end of file