Hi Paul: I found your SEKE 2000 paper stimulating. http://www.cis.umassd.edu/~pbergstein/ Limitations of Data Encapsulation and Abstract Data Types I think the idea is useful and should be developed a little further. The general formulation of the LoD: http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/general-formulation.html says: Only talk to closely related other units. You seem to say: Only talk WITH RESPECT to closely related units. or Only talk WITH RESPECT to your friends. By WITH RESPECT I mean the same as when you say: send only messages that treat the object as an abstraction. While we have formalizations for "closely related" what would be a formalization of WITH RESPECT be? In DJ we have three methods: Object classGraph.traverse(object, "from A to B", visitor) List classGraph.gather(object, "from A to B") Object classGraph.fetch(object, "from A to B") with wich we do a lot of the work in our Java programs. Are you saying that excessive use of fetch and gather is bad? It is disrespectful to go into an object and rip out some pieces of it. Object classGraph.traverse(object, "from A to B", visitor) takes a more holistic approach and goes into the object treating it as an "abstraction" and it usually does several computations inside the object. The object is treated as an abstraction because only the "important" parts are mentioned both by the traversal strategy string and the visitor object. When I program I use fetch mostly for retrieving names in a structure-shy way. I like the slogan: Only talk WITH RESPECT to your friends. Do you have more ideas on how we could make "WITH RESPECT" more precise? -- Karl