Animation first refactor (with bugs)