http://www.oodesign.com/decorator-pattern.html http://sourcemaking.com/design_patterns/template_method