New instance per animation, moved extensions to sub-namespace and abstracted elastic functions