Software Design - Design pattern Handin