Design Patterns Revisited