updated is_invalid_move