Added more design patterns