Subcomponent self-assembly