upplied")
  assert(object.name, "no name for object")
  assert(object.container, "no container for object")
  object.container:add(object.name, object)
  return oo.rawnew(self, object)
end


Container = oo.class{}
function Container:__init(object)
  object = object or {}
  object.members = object.members or {}
  return oo.rawnew(self, object)
end
function Container:add(name, object)
  self.members[name] = object
end
function Container:search(path)
  local container, newpath = string.match(path, "(.-)/(.+)$"