design patterns v1