factored out animation into it's own package (so clients can add animations)
currently inverseAnimation is broken