anchor.diff:                          true -> RMethod
                        end,
              {BuildTime, SyncStruct} =
  -               util:tc(fun() -> build_recon_struct(ToBuild, OldSyncStruct, DestI,
  +               util:tc(fun() -> build_recon_struct(ToBuild, OldSyncStruct, SyncI,
                                                      NewKVList, Params, BeginSync)
                          end),
              Stats1 = rr_recon_stats:inc([{build_time, BuildTime}], Stats),
  
positive.code: 
  -spec build_struct(DBList::db_chunk_kv(), DestI::intervals:non_empty_interval(),
                     RestI::intervals:interval(), state()) -> state() | kill.
  build_struct(DBList, DestI, RestI,
               State = #rr_recon_state{method = RMethod, params = Params,
                                       struct = OldSyncStruct,
                                       initiator = Initiator, stats = Stats,
                                       dhtNodePid = DhtNodePid, stage = Stage,
                                       kv_list = KVList}) ->
      ?ASSERT(not intervals:is_empty(DestI)),
      % bloom may fork more recon processes if un-synced elements remain
      BeginSync =
          case intervals:is_empty(RestI) of
              false ->
                  SubSyncI = map_interval(DestI, RestI),
                  case intervals:is_empty(SubSyncI) of
                      false ->
                          MySubSyncI = map_interval(RestI, DestI), % mapped to my range
                          Reconcile =
                              if Initiator andalso (Stage =:= reconciliation) -> reconcile;
                                 true -> create_struct
                              end,
                          send_chunk_req(DhtNodePid, self(), MySubSyncI, SubSyncI,
                                         get_max_items(), Reconcile),
                          false;
                      true -> true
                  end;
              true -> true
          end,
      NewKVList = lists:append(KVList, DBList),
  
negative.code:     is_subtype(LPid,        comm:erl_local_pid()),
      is_subtype(I,           intervals:interval()).
  send_chunk_req(DhtPid, SrcPid, I, _DestI, MaxItems, reconcile) ->
      ?ASSERT(intervals:is_subset(I, _DestI)),
      SrcPidReply = comm:reply_as(SrcPid, 2, {reconcile, '_'}),
      send_local(DhtPid,
                 {get_chunk, SrcPidReply, I, fun get_chunk_filter/1,
  