refactor move animation logic into AnimatedMove object