diff --git a/src/game/GameModel.java b/src/game/GameModel.java
index 3a911f8bb1b4b4f9a233d607b2d962b667ffed40..27bcc3fcd55e2150beb6f8e6c67e9a9a52d1ee01 100644
--- a/src/game/GameModel.java
+++ b/src/game/GameModel.java
@@ -6,21 +6,19 @@ public class GameModel extends AbstractTableModel {
 
     private GameBoard board;
     private GameRunner runner;
-    private GameRunner2 runner2; //TODO runners
     private boolean editable;
 
     public GameModel(int height, int width) {
         board = new GameBoard(height, width);
         runner = new GameRunner(this, board);
-        runner2 = new GameRunner2(this, board);
-        runner2.start();
+        runner.start();
         editable = true;
     }
 
     public GameModel(GameBoard board){
         this.board = board;
-        runner2 = new GameRunner2(this, board);
-        runner2.start();
+        runner = new GameRunner(this, board);
+        runner.start();
         editable = true;
     }
 
@@ -42,24 +40,11 @@ public class GameModel extends AbstractTableModel {
 
     public void start() {
         editable=false;
-        //runner.start();
-        //TODO runners
-        runner2.resumeRunner();
+        runner.resumeRunner();
     }
 
     public void stop(){
-        /*
-        runner.stopRunner();
-        while (runner.isAlive()){
-            try {
-                Thread.sleep(500);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-        }
-         */
-        //TODO runners
-        runner2.pauseRunner();
+        runner.pauseRunner();
         synchronized (board) {
             editable = true;
         }
diff --git a/src/game/GameRunner.java b/src/game/GameRunner.java
index 73899ea9c1b332d6bc426ad1a5a03d14673f35e2..df006630ece5cf55b3addadcf53a8609922ad1de 100644
--- a/src/game/GameRunner.java
+++ b/src/game/GameRunner.java
@@ -2,30 +2,57 @@ package game;
 
 public class GameRunner extends Thread {
 
-	private GameModel model;
-	private GameBoard board;
-	volatile private boolean stopSignal;
-
-	public GameRunner(GameModel model, GameBoard board) {
-		this.model=model;
-		this.board=board;
-		stopSignal=false;
-	}
-
-	public void stopRunner(){
-		stopSignal=true;
-	}
-
-	public void run(){
-	    stopSignal = false;
-        while (!stopSignal){
-            board.step();
-            model.fireTableDataChanged();
-            try {
-                sleep(500);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
+    private final GameModel model;
+    private final GameBoard board;
+    private volatile boolean paused;
+
+    public GameRunner(GameBoard board) {
+        this.board = board;
+        model = null;
+        paused = true;
+    }
+
+    public GameRunner(GameModel model, GameBoard board) {
+        this.model = model;
+        this.board = board;
+        paused = true;
+    }
+
+    public void run() {
+        synchronized (board) {
+            while (true) {
+                while (paused) {
+                    try {
+                        board.wait();
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                while (!paused) {
+                    board.step();
+                    if (model != null)
+                        model.fireTableDataChanged();
+                    try {
+                        sleep(500);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+    }
+
+    public void pauseRunner() {
+        paused = true;
+    }
+
+    public void resumeRunner() {
+        if (paused) {
+            synchronized (board) {
+                paused = false;
+                board.notify();
             }
         }
-	}
+    }
 }
diff --git a/src/game/GameRunner2.java b/src/game/GameRunner2.java
deleted file mode 100644
index a646ac06bc5b5a76a6128c92a5dfdf70db49609c..0000000000000000000000000000000000000000
--- a/src/game/GameRunner2.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package game;
-
-public class GameRunner2 extends Thread {
-
-    private final GameModel model;
-    private final GameBoard board;
-    private volatile boolean paused;
-
-    public GameRunner2(GameBoard board) {
-        this.board = board;
-        model = null;
-        paused = true;
-    }
-
-    public GameRunner2(GameModel model, GameBoard board) {
-        this.model = model;
-        this.board = board;
-        paused = true;
-    }
-
-    public void run() {
-        synchronized (board) {
-            while (true) {
-                while (paused) {
-                    try {
-                        board.wait();
-                    } catch (InterruptedException e) {
-                        e.printStackTrace();
-                    }
-                }
-
-                while (!paused) {
-                    board.step();
-                    if (model != null)
-                        model.fireTableDataChanged();
-                    try {
-                        sleep(500);
-                    } catch (InterruptedException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-        }
-    }
-
-    public void pauseRunner() {
-        paused = true;
-    }
-
-    public void resumeRunner() {
-        if (paused) {
-            synchronized (board) {
-                paused = false;
-                board.notify();
-            }
-        }
-    }
-}
diff --git a/src/game/StartModel.java b/src/game/StartModel.java
index a3d704806fc3e57281b702da1eb17219fdfcd4f0..0c0c82a2bf9ede4b7c6a7e7f7eca35ae6b4fbeb3 100644
--- a/src/game/StartModel.java
+++ b/src/game/StartModel.java
@@ -19,6 +19,7 @@ public class StartModel {
         FileFilter filter = new FileNameExtensionFilter("JSON File (.json)", "json");
         fileChooser.setFileFilter(filter);
     }
+    //TODO frameinit?
 
     public void loadFromFile(){
         int returnVal = fileChooser.showOpenDialog(startFrame);
@@ -28,6 +29,7 @@ public class StartModel {
                 board = GameBoardJson.loadFromFile(selected);
                 startFrame.setTextFieldMessage(selected.getName() + "loaded.");
             } catch (FileNotFoundException e) {
+                board = null; //TODO Kell-e?
                 e.printStackTrace();
             }
         }