   add_child: (value) ->
     child = @make_world value
     assert child, "add_child"
+    assert !_.isFunction @get_raw(CHILDREN)
     @get(CHILDREN).push(child)
     child
     

    world

  _from_dict: (dict) ->
    label = dict[LABEL] or "#{@get(LABEL)}:#{@_child_count()}"
    world = @_spawn_world label
    world.import_dict dict

    closure(@, args)
    
  # TODO: refactor import_dict methods somewhere
  _import_children: (array) ->
    result = @rx().array()
    for value in array
      assert value, 'import child'
      result.push @make_world(value)
    result
    
  import_dict: (dict) ->
    for key, value of dict
      console.log("import_dict #{value} for #{key}")
      value = @_from_dict(value) if (key == AUTHORITY)
      value = @_import_children(value) if key == CHILDREN
      console.log("import_dict #{value} for #{key}")
      @put(key, value)
    this

  _spawn_world: (label) ->
