move animation to a separate module