Design patterns: Template Method