moved templates into their own namespaces to avoid collisions