how to design patterns