design patterns: template & strategy blog post