# File lib/mega/preinitialize.rb, line 67
  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')
        im = instance_method('preinitialize')
        im.arity == 0 ? im.bind(o).call : im.bind(o).call(*args, &blk)
      end
    end

    o.send(:initialize, *args, &blk)

    return o
  end