indented design patterns exercise