finished isMoveValid()