anchor.diff:  %-spec add_entry(Node :: node:node_type(), Type :: entry_type(), RT :: rt()) -> rt().
   -spec add_entry(node:node_type(),'normal' | 'source' | 'sticky',rt()) -> rt().
   add_entry(Node, Type, RT) ->
  -    entry_learning_and_filtering(Node, Type, RT).
  +    NewRT = entry_learning_and_filtering(Node, Type, RT),
  +    update_fd(RT, NewRT),
  +    NewRT
  +    .
   
   % @doc Add a sticky entry to the routing table
   -spec add_sticky_entry(Entry :: node:node_type(), rt()) -> rt().
  -add_sticky_entry(Entry, RT) -> add_entry(Entry, sticky, RT).
  +add_sticky_entry(Entry, RT) ->
  +   add_entry(Entry, sticky, RT)
  +   .
   
   % @doc Add the source entry to the routing table
  -% TODO unit test that only one source entry is allowed
   -spec add_source_entry(Entry :: node:node_type(), rt()) -> rt().
  -add_source_entry(Entry, RT) -> add_entry(Entry, source, RT).
  +add_source_entry(Entry, #rt_t{source=undefined} = RT) ->
  +    IntermediateRT = set_source_node(node:id(Entry), RT),
  +    % only learn; the RT must be empty, so there is no filtering needed afterwards
  +    NewRT = entry_learning(Entry, source, IntermediateRT),
  +    %% TODO is this needed? Maybe we don't need a subscription.
  +    add_fd(NewRT),
  +    NewRT
  +    .
   
   % @doc Add a normal entry to the routing table
   -spec add_normal_entry(Entry :: node:node_type(), rt()) -> rt().
  -add_normal_entry(Entry, RT) -> add_entry(Entry, normal, RT).
  +add_normal_entry(Entry, RT) ->
  +    add_entry(Entry, normal, RT)
  +    .
   
   % @doc Get the inner node:node_type() of a rt_entry
   -spec rt_entry_node(N :: rt_entry()) -> node:node_type().
  
positive.code:                 gb_trees:enter(SuccId, NewSucc, Tree))
      end,
  
      RT#rt_t{nodes=UpdatedTree}.
  
  % @doc Create an rt_entry and return the entry together with the Pred und Succ node, where
  % the adjacent fingers are changed for each node.
  
negative.code: 
  handle_custom_message({rt_get_node_response, NewNode}, State) ->
      OldRT = rt_loop:get_rt(State),
      NewRT = case rt_lookup_node(node:id(NewNode), OldRT) of
          none -> RT = add_normal_entry(NewNode, OldRT),
                  check(OldRT, RT, rt_loop:get_neighb(State), true),
                  RT;
          _Else ->  OldRT
      end,
  
      rt_loop:set_rt(State, NewRT)
      ;
  
  handle_custom_message(_Message, _State) -> unknown_event.
  %% userdevguide-end rt_frtchord:handle_custom_message
  