add castling, en passant, stalemate