Moved Design Patters to their own file