Exercise 8_Software Design patterns