Why do we need Design Patterns? - Part 2