design patterns initial commit