added Design Patterns