diff --git a/PuzzlePlayer/PuzzlePlayer.cs b/PuzzlePlayer/PuzzlePlayer.cs
index 49fb09a6f9fc6da5faaa4c55085241a0c2ca3f3a..a1a65a32a06468b4ea962acb63c6085901597781 100644
--- a/PuzzlePlayer/PuzzlePlayer.cs
+++ b/PuzzlePlayer/PuzzlePlayer.cs
@@ -26,6 +26,7 @@ namespace PuzzlePlayer_Namespace
 
         private void SetUpPuzzleForms()
         {
+            puzzleForms.Clear();
             puzzleForms.Add(new PuzzleForm(new Binary()));
             puzzleForms.Add(new PuzzleForm(new Maze()));
         }
@@ -106,6 +107,7 @@ namespace PuzzlePlayer_Namespace
                     Image = Image.FromFile(image + ".jpg"),
                     FlatStyle = FlatStyle.Flat,
                     Font = SettingForm.mainFont,
+                    Name = i.ToString()
                 };
 
                 button.MouseEnter += (object o, EventArgs e) =>
@@ -121,7 +123,9 @@ namespace PuzzlePlayer_Namespace
                 button.MouseClick += (object o, MouseEventArgs e) =>
                 {
                     this.Hide();
-                    PuzzleForm puzzleForm = new PuzzleForm(new Binary());
+                    RoundedButton rb = (RoundedButton) o;
+
+                    PuzzleForm puzzleForm = puzzleForms[int.Parse(rb.Name)];
                     puzzleForm.FormClosed += (object o, FormClosedEventArgs fcea) =>
                     {
                         this.BackColor = SettingForm.primaryColor;
@@ -135,6 +139,7 @@ namespace PuzzlePlayer_Namespace
                         this.Show();
                     };
                     puzzleForm.Show();
+                    SetUpPuzzleForms(); //cheeky dwdw
                 };
                 buttonsPanel.Controls.Add(button);
                 // -- buttons.Add(button);