first part design patterns 9807417