<blockquote> It's not actually that practical, and such things end up making your code very much like C++ and Java. Ruby is smarter than that. Ruby can do more than that. Think in terms of what your object's required capabilities are instead of pretending that a class indicator is sufficient for that. </blockquote> While I understand you pointr Austin --obviously where talking Duck Typing here. But I think it is interesting to condier that this is some respect antithetical to OOP in general --I mean the reciever _is_ a specific type. And that reacieve detemine the functionality of the method call. It is sort of as if you were progamming in a more traditional functional language and _had_ to specifiy the type of the first argument, but never the remaining. foofunc( FooClass foo, clever, smart, stupid ) instead of foo.foofunc( clever, smart, stupid ) So why shouldn't any of the other participating objects have a selective effect too? T.