Adding Design Patterns