Split moves into MoveAttempt, MoveAttemptHandler and then delegated responsibility to Referee class.