templates and if