updated readme with the design patterns used