Design Patterns in LLD