attemptMove refactor