anchor.diff:         true ->
               State
       end.
  +
  +%% @doc Logical delete of a key in the cluster metadata dict
  +-spec remove_meta(Key :: term(), State :: chstate()) -> chstate().
  +remove_meta(Key, State) ->
  +    update_meta(Key, '$removed', State).
   
   %% @doc Return the current claimant.
   -spec claimant(State :: chstate()) -> node().
  
positive.code: get_meta(Key, State) -> 
      case dict:find(Key, State?CHSTATE.meta) of
          error -> undefined;
          {ok, M} -> {ok, M#meta_entry.value}
      end.
  
  
negative.code:                  get_meta(key,?CHSTATE{meta=
                              merge_meta(Ring2?CHSTATE.meta,
                                         Ring1?CHSTATE.meta)})).
  
  metadata_remove_test() ->
      Ring0 = fresh(2, node()),
      Ring1 = update_meta(key,val,Ring0),
      timer:sleep(1001), % ensure that lastmod is at least one second later
      Ring2 = remove_meta(key,Ring1),
      ?assertEqual(undefined, get_meta(key, Ring2)),
      ?assertEqual(undefined, get_meta(key, ?CHSTATE{meta=merge_meta(Ring1?CHSTATE.meta, Ring2?CHSTATE.meta)})),
      ?assertEqual(undefined, get_meta(key, ?CHSTATE{meta=merge_meta(Ring2?CHSTATE.meta, Ring1?CHSTATE.meta)})).
  
  rename_test() ->
      Ring0 = fresh(2, node()),
      Ring = rename_node(Ring0, node(), 'new@new'),
  