Animation system refactoring, thanks in part to Cyberus' project