diff --git a/app/src/main/java/brickbreaker/App.java b/app/src/main/java/brickbreaker/App.java
index c73fede56e73eb760fca7ec88f843a36325dfe76..98893d2543d25e6ded99724cef0936736a79db12 100644
--- a/app/src/main/java/brickbreaker/App.java
+++ b/app/src/main/java/brickbreaker/App.java
@@ -13,11 +13,10 @@ public class App {
     public static Menu mainMenu;
     public static GamePanel gamePanel;
     public static ScoringSystem scoreSystem = new ScoringSystem();
+    public static JFrame frame;
     
     public static void main(String[] args) {
-        
-        JFrame frame = new JFrame();
-        
+        frame = new JFrame();
         frame.setBounds(10, 10, 700, 600);
         frame.setTitle("Brick Breaker");
         frame.setResizable(false);
@@ -29,4 +28,12 @@ public class App {
 
         frame.setVisible(true);
     }
+    
+    public static void createGame() {
+        App.gamePanel = new GamePanel(frame);
+    }
+    
+    public static void createMainMenu() {
+        App.mainMenu = new Menu(frame);
+    }
 }
diff --git a/app/src/main/java/brickbreaker/GamePanel.java b/app/src/main/java/brickbreaker/GamePanel.java
index a3fa4f37ce14fd0374d7671c578c1337baf692de..c8f282de9022241dfb9df69e69a119cb9730544b 100644
--- a/app/src/main/java/brickbreaker/GamePanel.java
+++ b/app/src/main/java/brickbreaker/GamePanel.java
@@ -101,6 +101,8 @@ public class GamePanel extends JPanel implements ActionListener {
             @Override
             public void actionPerformed(ActionEvent e) {
                 frame.remove(thisPanel);
+                if(App.mainMenu == null) App.createMainMenu();
+                
                 App.mainMenu.show();
                 frame.revalidate();
                 frame.repaint();
diff --git a/app/src/main/java/brickbreaker/Menu.java b/app/src/main/java/brickbreaker/Menu.java
index c96671577fa8dc86fc7d9eab7eab9eaf416591b5..c975b6f9e3bc9862b7de96084bd25f95061c1f8b 100644
--- a/app/src/main/java/brickbreaker/Menu.java
+++ b/app/src/main/java/brickbreaker/Menu.java
@@ -27,6 +27,7 @@ public class Menu extends JPanel {
     private JFrame frame;
     private Timer animationTimer;
     private int textPosition = -200;
+    
     public Menu(JFrame frame) {
         this.frame = frame;
         initComponents();
@@ -117,7 +118,7 @@ public class Menu extends JPanel {
         guest.setActionCommand("play");
         guest.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         guest.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
-        guest.setLabel("Play as Guest");
+        guest.setLabel("Play Now");
         guest.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
                 guestActionPerformed(evt);
@@ -150,7 +151,7 @@ public class Menu extends JPanel {
                         .addGap(301, 301, 301)
                         .addComponent(registerButton))
                     .addGroup(layout.createSequentialGroup()
-                        .addGap(282, 282, 282)
+                        .addGap(301, 301, 301)
                         .addComponent(guest))
                     .addGroup(layout.createSequentialGroup()
                         .addGap(290, 290, 290)
@@ -185,7 +186,9 @@ public class Menu extends JPanel {
 
     private void guestActionPerformed(java.awt.event.ActionEvent evt) {                                      
         this.setVisible(false);
-        
+        if(App.gamePanel == null)
+            App.createGame();
+        frame.add(App.gamePanel);
     }                                     
 
     private void highScoreActionPerformed(java.awt.event.ActionEvent evt) {                                          
@@ -209,7 +212,6 @@ public class Menu extends JPanel {
         if(App.user != null) {
             this.remove(loginButton);
             this.remove(registerButton);
-            this.remove(guest);
         }
         
         frame.add(this);