describe usage of a template method