creates TemplateDelegate interface