Design Patterns solution added.