Separated methods from constructors in types, so they can be used by the template constructor so you don't lose methods or data, if they are part of your template
Added registry for properties, so if any new element type would need certain info saved, it'll be stored and recalled when converted to a templated
Reduced wasted in the template function, to ensure JSON data is kept to a minimum
Updated the template functions to support storing complex types as their data only, to minimise their size in JSON, with the option of keeping everything, if required
Added named events, so if you can JSON events, without having to use eval