diff --git a/frontend/core/src/com/gameware/game/GameWare.java b/frontend/core/src/com/gameware/game/GameWare.java
index d4cd323e79f3e35d013b36eb4f7922f84be4ce42..9664fc96e9681e52885623169d44a22e115ace3a 100644
--- a/frontend/core/src/com/gameware/game/GameWare.java
+++ b/frontend/core/src/com/gameware/game/GameWare.java
@@ -32,7 +32,7 @@ public class GameWare extends ApplicationAdapter {
 
 	@Override
 	public void create () {
-		gsm = new GameStateManager();
+		gsm = GameStateManager.getInstance();
 		batch = new SpriteBatch();
 		//music = Gdx.audio.newMusic(Gdx.files.internal(("music.mp3")));
 		//music.setLooping(true);
diff --git a/frontend/core/src/com/gameware/game/states/GameStateManager.java b/frontend/core/src/com/gameware/game/states/GameStateManager.java
index e74b0aef2b0f35037530838d30d430021076bec0..b919a24b8dd64160e667717e1bcdbb3585a69d6b 100644
--- a/frontend/core/src/com/gameware/game/states/GameStateManager.java
+++ b/frontend/core/src/com/gameware/game/states/GameStateManager.java
@@ -7,7 +7,17 @@ import java.util.Stack;
 public class GameStateManager {
     private Stack<State> states;
 
-    public GameStateManager(){
+    private static GameStateManager instance = null;
+
+    //Singleton (lazy initialization)
+    public static GameStateManager getInstance(){
+        if( instance == null){
+            instance = new GameStateManager();
+        }
+        return instance;
+    }
+
+    private GameStateManager(){
         states = new Stack<State>();
     }
 
diff --git a/frontend/core/src/com/gameware/game/states/MenuState.java b/frontend/core/src/com/gameware/game/states/MenuState.java
index 75dc4d73ff7d91637cf157dd54fba6fb60bd531a..b3d1ebe2016c7a764c392ce5ce0554077b2af7c9 100644
--- a/frontend/core/src/com/gameware/game/states/MenuState.java
+++ b/frontend/core/src/com/gameware/game/states/MenuState.java
@@ -11,6 +11,8 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
 import com.gameware.game.GameWare;
 
 public class MenuState extends State{
+
+    //TODO: Burde kanskje dispose en state når bytter state?
     private Stage stage;
     private Table table;
 
@@ -26,7 +28,6 @@ public class MenuState extends State{
 
     public MenuState(GameStateManager gsm) {
         super(gsm);
-        System.out.println("Du er i menu state :0");
 
         stage = new Stage();
         Gdx.input.setInputProcessor(stage);
@@ -69,6 +70,14 @@ public class MenuState extends State{
         });
         table.add(highScoreBtn);
 
+        table.row();
+        TextButton logOutBtn = new TextButton(logOutBtnText, skin);
+        logOutBtn.addListener(new ClickListener() {
+            @Override
+            public void clicked(InputEvent e, float x, float y){ handleLogOutBtnClick(); }
+        });
+        table.add(logOutBtn);
+
         stage.addActor(table);
 
     }
@@ -120,7 +129,8 @@ public class MenuState extends State{
     }
 
     private void handleLogOutBtnClick(){
-
+        gsm.set(new LoginState(gsm));
+        //TODO: antar at når ikke logget inn at user i GameWare skal bli satt til null
+        //Gameware.setUser(null);
     }
-
 }