anchor.diff:  handle_custom_message({gossip_get_values_best_response, Vals}, State) ->
       RT = rt_loop:get_rt(State),
       NewRT = rt_set_ring_size(RT, gossip_state:get(Vals, size_kr)),
  +    %% NewRT = rt_set_ring_size(RT, gossip_load:load_info_get(size_kr, Vals)),
       msg_delay:send_local(config:read(rt_frt_gossip_interval), pid_groups:get_my(gossip),{get_values_best, self()}),
  +    %% msg_delay:send_local(config:read(rt_frt_gossip_interval), pid_groups:get_my(gossip2),{get_values_best, {gossip_load, default}, self()}),
       RTExt = export_rt_to_dht_node(NewRT, rt_loop:get_neighb(State)),
       comm:send_local(pid_groups:get_my(dht_node), {rt_update, RTExt}),
       rt_loop:set_rt(State, NewRT);
  
positive.code: check(OldRT, NewRT, OldNeighbors, NewNeighbors, ReportToFD) ->
      % if the routing tables haven't changed and the successor/predecessor haven't changed
      % as well, do nothing
      case OldRT =:= NewRT andalso 
           nodelist:succ(OldNeighbors) =:= nodelist:succ(NewNeighbors) andalso
           nodelist:pred(OldNeighbors) =:= nodelist:pred(NewNeighbors) of
          true -> ok;
  
negative.code: 
      % request approximated ring size
      comm:send_local(pid_groups:get_my(gossip), {get_values_best, self()}),
      %% comm:send_local(pid_groups:get_my(gossip2), {get_values_best, {gossip_load, default}, self()}),
  
      update_entries(Neighbors, add_source_entry(nodelist:node(Neighbors), #rt_t{})).
  
  