>> I have a module I would like to do some >> initialization of a class when a new instance >> is created. What is the best way my initialization >> code executes when a new instance of the object or >> a sub-class of the object is instantiated? I'd like >> this to be as transparent to the user as possible. If initialization is so complex that you want to hide it from the user (and especially if there are several ways to do it), another way to do it would be to wrap it in a GoF factory and combine it with the technique described in "Object Construction and Blocks" at: http://www.pragmaticprogrammer.com/ruby/articles/insteval.html This way you'd leave your initialize() clean for future/some other use and independant of that particular construction (providing that you need it to be clean, i.e. when there is more then one way to construct it). (Sorry if I missed the point.) Regards, Maksa