def init_lists(hash)
      self.methods = nil
      self.names = List.new
      self.types = List.new
      raise "No type Type in #{hash}" unless hash[:type]
      private_add_instance_variable(:type , hash[:type]) #first
      hash.each do |name , type|
        private_add_instance_variable(name , type) unless name == :type
      end
    end
def init_lists(hash)
      self.methods = nil
      self.names = List.new
      self.types = List.new
      raise "No type Type in #{hash}" unless hash[:type]
      private_add_instance_variable(:type , hash[:type]) #first
      hash.each do |name , type|
        private_add_instance_variable(name , type) unless name == :type
      end
    end
this part of the init is seperate because at boot time we can not use normal new
 new is overloaded to grab the type from space, and before boot, that is not set up