private boolean canQueenSideCastle(ChessBoard board) {
        Coin c = board.getCoinAt(Position.getPosition(getRank(), Position.A));

        return (c instanceof Rook && c.isNotMovedYet()
                && board.getCoinAt(Position.getPosition(getRank(), Position.B)) == Coin.Empty
                && board.getCoinAt(Position.getPosition(getRank(), Position.C)) == Coin.Empty
                && board.getCoinAt(Position.getPosition(getRank(), Position.D)) == Coin.Empty);
    }