TemplateMethod