anchor.diff:              shutdown(empty_interval, State)
       end;
   
  -on({rr_recon, data, DestI, {get_chunk_response, {RestI, DBList0}}}, State =
  -       #rr_recon_state{ stage = build_struct,
  -                        method = RMethod,
  -                        struct = Params,
  -                        dhtNodePid = DhtNodePid,
  -                        initiator = Initiator,
  -                        stats = Stats }) ->
  +on({rr_recon, data, DestI, {get_chunk_response, {RestI, DBList0}}},
  +   State = #rr_recon_state{stage = build_struct,       initiator = Initiator,
  +                           method = RMethod,           dhtNodePid = DhtNodePid,
  +                           struct = Params,            stats = Stats}) ->
       % create recon structure based on all elements in sync interval
       DBList = [encodeBlob(Key, VersionX) || {KeyX, VersionX} <- DBList0,
                                              none =/= (Key = map_key_to_interval(KeyX, DestI))],
  
positive.code: 
  on({create_struct, RMethod, SenderI, Params, RcvInitiator} = _Msg, State) ->
      ?TRACE1(_Msg, State),
      This = comm:reply_as(comm:this(), 3, {create_struct, SenderI, '_'}),
      comm:send_local(State#rr_recon_state.dhtNodePid, {get_state, This, my_range}),
      State#rr_recon_state{method = RMethod, initiator = RcvInitiator, struct = Params};
  
  on({create_struct, SenderI, {get_state_response, MyI}} = _Msg,
     State = #rr_recon_state{stage = req_shared_interval, initiator = false,
                             method = RMethod,            dhtNodePid = DhtPid,
                             dest_rr_pid = DestRRPid}) ->
      ?TRACE1(_Msg, State),
      % target node got sync request, asked for its interval
      % struct contains the interval of the initiator
      % -> client creates recon structure based on common interval, sends it to initiator
      RMethod =:= merkle_tree andalso fd:subscribe(DestRRPid),
      SyncI = find_intersection(MyI, SenderI),
      NewState = State#rr_recon_state{stage = build_struct,
                                      sync_interval = SyncI},
      case intervals:is_empty(SyncI) of
          false ->
              send_chunk_req(DhtPid, self(), SyncI, SyncI, get_max_items(RMethod)),
  
negative.code: -define(TRACE1(Msg, State),
          ?TRACE("~n  Msg: ~.0p~n"
                 "  State: method: ~.0p  stage: ~.0p  initiator: ~.0p~n"
                 "          destI: ~.0p~n"
                 "         params: ~.0p~n",
                 [Msg, State#rr_recon_state.method, State#rr_recon_state.stage,
                  State#rr_recon_state.initiator, State#rr_recon_state.dest_interval,
                  ?IIF(is_list(State#rr_recon_state.struct), State#rr_recon_state.struct, [])])).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  