design patterns update