anchor.diff:      comm:send_local(DHT_Node, {get_node_details, comm:this(), [my_range]}),
       State;
   
  -on({get_node_details_response, NodeDetails} = _Msg, State) ->
  +on({get_node_details_response, NodeDetails} = _Msg, {AllNodes, Leader} = State) ->
       ?TRACE1(_Msg, State),
       case is_leader(node_details:get(NodeDetails, my_range)) of
           false -> State;
           _ ->
               % start a new timeslot and gather stats...
  -            NewRound = State#state.round + 1,
  +            NewRound = Leader#state.round + 1,
               Msg = {send_to_group_member, monitor_perf, {gather_stats, comm:this(), NewRound}},
               bulkowner:issue_bulk_owner(intervals:all(), Msg),
  -            State1 = check_timeslots(State),
  -            broadcast_values(State, State1),
  -            State1#state{round = NewRound}
  +            Leader1 = check_timeslots(Leader),
  +            broadcast_values(Leader, Leader1),
  +            {AllNodes, Leader1#state{round = NewRound}}
       end;
   
   on({gather_stats, SourcePid, Round} = _Msg, State) ->
  
positive.code:     end,
      State;
  
  on({gather_stats_response, Round, DataL} = _Msg, State) when Round =:= State#state.round->
      ?TRACE1(_Msg, State),
      lists:foldl(
        fun(Data, A) ->
                case Data of
                    {?MODULE, "read_read", PerfRR} ->
                        DB = A#state.perf_rr,
                        T = rrd:get_current_time(DB),
                        A#state{perf_rr = rrd:add_with(T, PerfRR, DB, fun timing_update_fun/3)};
                    {dht_node, "lookup_hops", PerfLH} ->
                        DB = A#state.perf_lh,
                        T = rrd:get_current_time(DB),
                        A#state{perf_lh = rrd:add_with(T, PerfLH, DB, fun timing_update_fun/3)}
                end
        end, State, DataL);
  on({gather_stats_response, _Round, _Data} = _Msg, State) ->
      ?TRACE1(_Msg, State),
      State;
  
  on({report_value, OtherState} = _Msg, State) when OtherState#state.round > State#state.round ->
      ?TRACE1(_Msg, State),
      integrate_values(OtherState, State);
  
  on({report_value, _OtherState} = _Msg, State) ->
      ?TRACE1(_Msg, State),
      State.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
negative.code:     msg_delay:send_local(FirstDelay, self(), {bench}),
      msg_delay:send_local(get_gather_interval(), self(), {propagate}),
      Now = os:timestamp(),
      State = #state{perf_rr = rrd:create(get_gather_interval() * 1000000, 60, {timing, us}, Now),
                     perf_lh = rrd:create(get_gather_interval() * 1000000, 60, {timing, count}, Now)},
      {State, State}.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Miscellaneous
  