    # File lib/facets/more/preinitialize.rb, line 84
      def new(*args, &blk)
        o = allocate

        #if respond_to?(:default_instance_variables)
        #  default_instance_variables.each{|k,v| o.instance_variable_set( "@#{k.to_s.gsub(/\W$/,'')}",v )}
        #end

        a = ancestors
        until a.empty?
          m = a.pop
          #if m.private_instance_methods.include?('preinitialize') or m.public_instance_methods.include?('preinitialize')
          if m.method_defined?('preinitialize') or m.private_method_defined?('preinitialize')
            im = instance_method('preinitialize')
            im.arity == 0 ? im.bind(o).call : im.bind(o).call(*args, &blk)
          end
        end

        o.__send__(:initialize, *args, &blk) if o.object_class.private_method_defined?(:initialize)

        o
      end