collect children object parent parent inherit node list list arrai list iter model facad supplier depend inherit node parent parent iter object model facad abstract list add model facad client depend inherit node parent parent iter object model facad abstract list add iter gener model facad gener inherit node parent parent iter iter special model facad special inherit node parent parent iter gener list add gener special list add special list collect set 