Some useful Design Patterns