Hi Doug and Johan: In class yesterday, Larry Dodds questioned why we explictly send several visitors along with a traversal. Why not one? Since Demeter/Java allows now to declare classes explicitly as visitor classes, we could adopt the following rule: void f() to X (V); is equivalent to void f(x) to X (V,V1,V2, ... ,Vk) where V1 through Vk are all the visitor classes reachable in depth-first order from V (in the class graph). V could be a deeply nested visitor class. The only tricky issue is that we have to order the part classes of V so that the depth-first order will give the correct visitor ordering. With the current language, composing visitors and ordering them are separated. The above suggests to combine the two. I think that in many situations, such a combination is convenient. The visitor object would be constructed as a minimal object according to the cd and and then all the init methods would be applied. What is your current view on the multiple visitor class problem? -- Karl