Yes, you're right: a node isn't a special case of a tree - and neither is a tree a special case of a trees object. Also, I'm a bit worried about multiple inheritance. I may want to implement use fields; and I can imagine going crazy if I have multiple inheritance.