all components are nested types