design patterns completed