anchor.diff:      msg_delay:send_local(FirstDelay, self(), {bench}),
       msg_delay:send_local(get_gather_interval(), self(), {propagate}),
       Now = os:timestamp(),
  -    #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{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
  
positive.code:     {gather_stats, SourcePid::comm:mypid(), Round::pos_integer()} |
      {{get_rrds_response, [{Process::atom(), Key::string(), DB::rrd:rrd() | undefined}]}, {SourcePid::comm:mypid(), Round::pos_integer()}} |
      {gather_stats_response, Round::pos_integer(), [{Process::atom(), Key::string(), Data::rrd:timing_type(number())}]} |
      {report_value, StatsOneRound::state()}.
  
  %-define(TRACE(X,Y), ct:pal(X,Y)).
  -define(TRACE(X,Y), ok).
  
negative.code:     comm:send_local(DHT_Node, {get_node_details, comm:this(), [my_range]}),
      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 = Leader#state.round + 1,
              Msg = {send_to_group_member, monitor_perf, {gather_stats, comm:this(), NewRound}},
              bulkowner:issue_bulk_owner(intervals:all(), Msg),
              Leader1 = check_timeslots(Leader),
              broadcast_values(Leader, Leader1),
              {AllNodes, Leader1#state{round = NewRound}}
      end;
  
  on({gather_stats, SourcePid, Round} = _Msg, State) ->
  