Added code for understanding Design Patterns