lots of refactor in preparation for shared animation and import/export