The Joiner: from subcomponents to design patterns