Patterns: Design and Composition