add TemplateMethod