Refactor movement & success check