diff --git a/src/main/java/engine/engineMain/Handler.java b/src/main/java/engine/engineMain/Handler.java
index 59236d3619d0859826f99fd91e61cda1aadce6d5..5aa69863461e4716d628db744db03da39e93dcfe 100644
--- a/src/main/java/engine/engineMain/Handler.java
+++ b/src/main/java/engine/engineMain/Handler.java
@@ -97,9 +97,12 @@ public class Handler implements ICallBack {
         this.masterRenderer = new MasterRenderer();
         this.mousePicker = new MousePicker(camera, masterRenderer.getProjectionMatrix(), worldGrid);
 
-        this.gameModel = new GameModel(worldGrid.getWorldSize(), worldGrid.getWorldSize());
-        this.gameModel.initialize();
-        //gameModel = Database.read();
+
+        if ((gameModel = Database.read()) == null) {
+            this.gameModel = new GameModel(worldGrid.getWorldSize(), worldGrid.getWorldSize());
+            this.gameModel.initialize();
+        }
+
         this.controller = new Controller(gameModel);
 
         TextMaster.init(loader);
@@ -251,6 +254,14 @@ public class Handler implements ICallBack {
                     if (exitGame == true)
                         return true;
 
+                    if (viewModel.checkNewGame())
+                    {
+                        this.gameModel = new GameModel(worldGrid.getWorldSize(), worldGrid.getWorldSize());
+                        this.gameModel.initialize();
+                        this.controller = new Controller(gameModel);
+                        setWorldGrid();
+                    }
+
                     pausedByMenu = !(viewModel.unpause());
                     paused = pausedByMenu;
                     if (!paused)
diff --git a/src/main/java/view/PauseMenu.java b/src/main/java/view/PauseMenu.java
index 8c6a1402595a369e559f2beb456b7d3b502aece9..eabea2c40f3538791005b535b66eb05a37678429 100644
--- a/src/main/java/view/PauseMenu.java
+++ b/src/main/java/view/PauseMenu.java
@@ -20,6 +20,7 @@ public class PauseMenu extends Menu{
     private UiButton resumeButton;
     private UiButton saveGameButton;
     private UiButton exitGameButton;
+    private UiButton newGame;
     private String tabTexture = "Test";
 
     public PauseMenu(Controller controller, GameModel gameModel) {
@@ -43,6 +44,9 @@ public class PauseMenu extends Menu{
         exitGameButton = new UiButton(loader.loadTexture("button/ExitGame"),
                 new Vector2f(0f,-0.23f),new Vector2f(0.1f,0.1f), ButtonEnum.EXIT_GAME);
         super.buttons.add(exitGameButton);
+        newGame = new UiButton(loader.loadTexture("button/NewGame"),
+                new Vector2f(0f,-0.4f),new Vector2f(0.1f,0.1f), ButtonEnum.EXIT_GAME);
+        super.buttons.add(newGame);
 
 
     }
@@ -54,7 +58,7 @@ public class PauseMenu extends Menu{
     }
 
 
-
+    public UiButton getNewGame(){return newGame;}
     public UiButton getResumeButton() {
         return resumeButton;
     }
diff --git a/src/main/java/view/ViewModel.java b/src/main/java/view/ViewModel.java
index 00945b4fd551cc56b8d57ef3b2f9e6d4f73fd353..3bdfbc0cd9afa055ce643587f15f90ddca2bba23 100644
--- a/src/main/java/view/ViewModel.java
+++ b/src/main/java/view/ViewModel.java
@@ -93,6 +93,7 @@ public class ViewModel {
     public boolean checkExitGame(){
         return this.pauseMenu.getExitGameButton().isClicked();
     }
+    public boolean checkNewGame(){return  this.pauseMenu.getNewGame().isClicked();}
 
     public void taxIncDecButtons(boolean moneyTab,GameModel gameModel)
     {
diff --git a/src/main/resources/textures/button/NewGame.png b/src/main/resources/textures/button/NewGame.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d5f7327a44367c50019f38a0ae1b05f19711768
Binary files /dev/null and b/src/main/resources/textures/button/NewGame.png differ