animation refactored