public Status runGame(Board board) throws ExitException{
        boolean repeat = true;
        final Timer timer = new Timer();
        int time = 0;
        final SecondTask add = new SecondTask(time);
        timer.scheduleAtFixedRate(add, 0, 1000);

        board.displayGrid();
        while (repeat) {
            try{
                board.playGrid();
            }
            catch(BoardException e){
                System.out.println(e.getMessage());
                timer.cancel();
                timer.purge();
                continue;
            }
            time = add.getTime();
            System.out.format("%02d:%02d%n", time / 60, time % 60);
            if (board.checkBoard()) {
                break;
            }
        }
        if (board.checkBoard()) {
            System.out.println("Congratulations!");
            BestTimesMenu times = new BestTimesMenu();
            timer.cancel();
            timer.purge();
            return MAIN_MENU;
            //times.addTime(time);
        }

        return QUIT;

    }