Adapter and TemplateMethod