Final - Ex2
Adding design patterns