public int[][] makeMove(Player player, Position startPos, Position destPos)
            throws PlayerNotActiveException, IllegalPieceMovementException,
            GameNotRunningException {

        if (state != RUNNING) {
            throw new GameNotRunningException();
        }

        if (player != activePlayer) {
            throw new PlayerNotActiveException();
        }

        if (player == PLAYER_ONE && board.getFieldAt(startPos) < 1
                || player == PLAYER_TWO && board.getFieldAt(startPos) > -1) {
            throw new IllegalPieceMovementException("Attempt to move"
                    + " piece of opposite player");
        }

//      TODO Think about possibilities (maybe return a GameResponse or use an Exception)
//      FOR SURE: Change the code below
        if (ruleManager.isLegal(player, startPos, destPos, board)) {
            board.movePiece(startPos, destPos);
            activePlayer = activePlayer == PLAYER_ONE ? PLAYER_TWO : PLAYER_ONE;
            state = ruleManager.getResult(board);
        }

        return board.getBoard();
    }