added animation mixins, refactored animation code