Hi Theo: have you already thought about the design of an extension feature for DIs? See: http://sourceforge.net/tracker/?atid=503809&group_id=63395&func=browse When we extend the concrete cd with a new feature, we may want to extend the current DI with the essence of the new feature and then map the extended DI to the new concrete cd. -- Karl See also: /proj/adaptive/www/design-decisions/plug-and-play/interface-classgraphs ========================= Difference between Curtis Clifton's approach (see his PhD thesis) and Demeter interfaces: we would have to specify for each traversal which visitors it wants to accept. Or are those visitors only spectators? They may update the object being traversed so they are more than spectators, they are assistants. But many visitors can be made assistants by introducing stack structures to the visitor: see the capacity constraint checker for nested containers.