public static boolean isValid(Position start, Position temp, ChessBoard board) {
        Coin c = board.getCoinAt(start);
        int tem = (c.getColor() == CoinColor.WHITE) ? 1 : -1;
        if (c instanceof Pawn && ((Pawn) c).readyForPromote()) {
            if (start.getFile() == temp.getFile()) {
                return (start.getRank() + tem == (temp.getRank())) && board.getCoinAt(temp) == Coin.Empty;
            } else if (start.getFile() == temp.getFile() - 1) {
                return (start.getRank() + tem == (temp.getRank())) && board.getCoinAt(temp) != Coin.Empty;
            } else if (start.getFile() == temp.getFile() + 1) {
                return (start.getRank() + tem == (temp.getRank())) && board.getCoinAt(temp) != Coin.Empty;
            }
            return false;
        }
        return false;
    }