Further refactoring. Now to choose between animation methods