diff --git a/Assets/Scripts/MainMenu.cs b/Assets/Scripts/MainMenu.cs
index 4a4192d4467c23666fb086f02f64875a8e91959c..db3234e8a1fda07ec910f42c3d04f958198e4bba 100644
--- a/Assets/Scripts/MainMenu.cs
+++ b/Assets/Scripts/MainMenu.cs
@@ -6,6 +6,8 @@ using UnityEngine.SceneManagement;
 public class MainMenu : MonoBehaviour
 {
     public GameObject LoadPanel;
+    public SaveHandler saveHandler;
+
     public void PlayGame() {
         SceneManager.LoadScene("Level_01");
     }
@@ -14,6 +16,7 @@ public class MainMenu : MonoBehaviour
     }
     public void LoadGame() {
         LoadPanel.SetActive(true);
+        saveHandler.LoadSaveSlots();
     }
     public void Settings() {
         SceneManager.LoadScene("Settings");
diff --git a/Assets/Scripts/Save/SaveHandler.cs b/Assets/Scripts/Save/SaveHandler.cs
index d261099b4711cc1f90b15a756092ce1fd24a10f9..e96759c91320bf3dbf78a2ec74dbfb4c2f04191c 100644
--- a/Assets/Scripts/Save/SaveHandler.cs
+++ b/Assets/Scripts/Save/SaveHandler.cs
@@ -18,35 +18,14 @@ public class SaveHandler : MonoBehaviour
         saveGameAgreement.SetActive(false);
         saveGameSlots.SetActive(true);
 
-        if (!Directory.Exists(Application.persistentDataPath + "/save/"))
-        {
-            Directory.CreateDirectory(Application.persistentDataPath + "/save/");
-        }
-
-        string[] files_str = Directory.GetFiles(Application.persistentDataPath + "/save/");
-        Dictionary<int, Tuple<string, DateTime>> files = preprocessFileName(files_str);
-
-        List<GameObject> slots = new List<GameObject> {
-            saveGameSlots.transform.Find("SaveSlot1").gameObject,
-            saveGameSlots.transform.Find("SaveSlot2").gameObject,
-            saveGameSlots.transform.Find("SaveSlot3").gameObject
-        };
-
-        for (int i=0; i<slots.Count; i++)
-        {
-            if (files.ContainsKey(i))
-            {
-                slots[i].transform.Find("SaveName").gameObject.GetComponent<Text>().text = files[i].Item1;
-                slots[i].transform.Find("SaveDate").gameObject.GetComponent<Text>().text = "Last saved: " + files[i].Item2.ToString();
-            } 
-        }
+        LoadSaveSlots();
     }
 
     public void OnSaveDisagreement()
     {
         saveGameAgreement.SetActive(false);
         Time.timeScale = 1;
-        inputHandler.setIsSaving(false);
+        inputHandler.setInactive(false);
     }
 
     public void OnSaveSlotSelection(int slotIdx)
@@ -75,7 +54,7 @@ public class SaveHandler : MonoBehaviour
         }
         OnSaveGame(slotIdx, saveName);
         Time.timeScale = 1;
-        inputHandler.setIsSaving(false);
+        inputHandler.setInactive(false);
     }
 
     public void OnSaveInputBack()
@@ -152,4 +131,30 @@ public class SaveHandler : MonoBehaviour
 
         return true;
     }
+
+    public void LoadSaveSlots()
+    {
+        if (!Directory.Exists(Application.persistentDataPath + "/save/"))
+        {
+            Directory.CreateDirectory(Application.persistentDataPath + "/save/");
+        }
+
+        string[] files_str = Directory.GetFiles(Application.persistentDataPath + "/save/");
+        Dictionary<int, Tuple<string, DateTime>> files = preprocessFileName(files_str);
+
+        List<GameObject> slots = new List<GameObject> {
+            saveGameSlots.transform.Find("SaveSlot1").gameObject,
+            saveGameSlots.transform.Find("SaveSlot2").gameObject,
+            saveGameSlots.transform.Find("SaveSlot3").gameObject
+        };
+
+        for (int i = 0; i < slots.Count; i++)
+        {
+            if (files.ContainsKey(i))
+            {
+                slots[i].transform.Find("SaveName").gameObject.GetComponent<Text>().text = files[i].Item1;
+                slots[i].transform.Find("SaveDate").gameObject.GetComponent<Text>().text = "Last saved: " + files[i].Item2.ToString();
+            }
+        }
+    }
 }