Ahhh... now it comes together. Thank you so much. so here's a quick revision of my understanding: I'm gonna call the 'the current class' selfClass. 1) class Klass <-- self is Klass <-- selfClass is also Klass end 2) def myMethod; end <-- creates myMethod(), callable by selfClass.new 3) obj.instance_eval <-- sets self to obj, sets selfClass to obj's metaclass 4) obj.class_eval <-- sets self to obj, AND sets selfClass to obj 5) include myModule <-- evaluates the instructions in myModule, underneath selfClass 6) extend myModule <-- evaluates the instructions in myModule, underneath self Does that seem correct now? Thanks for your help by the way. That's quite a bit more clear now. -- Posted via http://www.ruby-forum.com/.