allow multiple types to be defined on a template.