Patterns and common design decisions