register subcomponents