Design Patterns Applied