use templates for everything