updated the design patterns