removed asserts to allow better custom templates
added value to allow better custom templates
removed template option from lists and structs
strict type for templates
added config option to allow template customisation
tests setup