Chris Roos wrote: > Do you have any suggestions of alternative implementation? Depends on what you want to do. If you just want to create instances then you can just use a method. class Base def something f = create_foo # use f end end class Derived < Base class Foo end def create_foo(*a,&b) Foo.new(*a,&b) end end Or, if you want to do it more fancy you can define create_foo in the base class and have it return nil or raise an exception. Kind regards robert PS: Please don't top post and trim quotings - that way others can easier follow threads here.