Pattern Hatching: Design Patterns Applied source code