anchor.diff:  -spec init(nodelist:neighborhood()) -> rt().
   init(Neighbors) -> 
       % ask the successor node for its routing table
  -    % XXX i have to wrap the message as the Pid given as the succ is actually the dht
  -    % node, but the message should be send to the routing table
       Msg = {send_to_group_member, routing_table, {get_rt, comm:this()}},
       comm:send(node:pidX(nodelist:succ(Neighbors)), Msg),
  +    comm:send_local(self(), {trigger_random_lookup}),
       empty(Neighbors).
   
   %% @doc Hashes the key to the identifier space.
  
positive.code:     .
  
  % @doc Delete an entry from the routing table
  % TODO stale fingers, delete pointers
  -spec entry_delete(EntryKey :: key(), RT :: rt()) -> RefinedRT :: rt().
  entry_delete(EntryKey, RT) ->
      Tree = gb_trees:delete(EntryKey, get_rt_tree(RT)),
  
negative.code:                                 "{int(), int()}");
              _ -> false
          end.
  
  
  
  %% @doc Generate a random key from the pdf as defined in (Nagao, Shudo, 2011)
  % TODO unit test that the generator doesn't generate keys from outside ?MINUS_INFINITY
  % to ?PLUS_INFINITY
  %% TODO
  %I floor the key for now; the key generator should return ints, but returns
  %float. It is currently unclear if this is a bug in the original paper by Nagao and
  %Shudo. Using erlang:trunc/1 should be enough for flooring, as X >= 0
  % TODO using the remainder might destroy the CDF. why can X > 2^128?
  -spec get_random_key_from_generator(SourceNodeId :: key(),
                                      PredId :: key(),
                                      SuccId :: key()
                                     ) -> key().
  get_random_key_from_generator(SourceNodeId, PredId, SuccId) ->
      Rand = random:uniform(),
      X = SourceNodeId + get_range(SourceNodeId, SuccId) *
          math:pow(get_range(SourceNodeId, PredId) /
                      get_range(SourceNodeId, SuccId),
                      Rand
                  ),
      erlang:trunc(X) rem 16#100000000000000000000000000000000
      .
  
  %% userdevguide-begin rt_frtchord:handle_custom_message
  %% @doc Handle custom messages. The following messages can occur:
  