public Token getNextTurn()
    {
        if(isGameOver)
            throw new IllegalStateException(String.format("ERROR: This game is over already."));

        Square lastPlayedSquare = getLastPlayedSquare();
        Token lastPlayedToken = gameBoard.get(lastPlayedSquare);
        
        // First turn always goes to X
        if(lastPlayedToken == null)
            return Token.X;
        else if(lastPlayedToken == Token.O)
            return Token.X;
        else
            return Token.O;
    }