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

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