Program to learn about design patterns