• Design Patterns and Refactoring