anchor.diff:      VariableAtom = list_to_atom(Variables),
       VariableAtom = ets:new(VariableAtom, [set, named_table, public,
                                             {write_concurrency, true}]),
  -    {ok, #state{partition=Partition, variables=VariableAtom}}.
  -
  -handle_command({declare, Id, Type}, _From,
  -               State=#state{variables=Variables}) ->
  -    lager:info("Declare received: ~p ~p", [Id, Type]),
  -    Record = case Type of
  -        undefined ->
  -            #dv{value=undefined, type=undefined, bounded=false};
  -        Type ->
  -            #dv{value=Type:new(), type=Type, bounded=true}
  -    end,
  -    true = ets:insert(Variables, {Id, Record}),
  +    {ok, #state{partition=Partition, node=node(), variables=VariableAtom}}.
  +
  +handle_command({declare, Id, Type}, _From, State) ->
  +    {ok, Id} = internal_declare(Id, Type, State),
       {reply, {ok, Id}, State};
   
   handle_command({bind, Id, {id, DVId}}, From,
  
positive.code:     NextKey0 = V#dv.next,
      if
          NextKey0 == undefined ->
              {ok, NextKey} = declare_next(V#dv.type),
              V1 = V#dv{next=NextKey},
              true = ets:insert(Variables, {X, V1}),
              {reply, {ok, NextKey}, State};
  
negative.code:     Bounded = V#dv.bounded,
      {reply, Bounded, State};
  
  handle_command(_Message, _Sender, State) ->
      {noreply, State}.
  
  handle_handoff_command(?FOLD_REQ{foldfun=FoldFun, acc0=Acc0}, _Sender,
  