anchor.diff:         true -> ok
       end,
       State#ru_recon_state{ stats = FinalStats }.
  -    
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +
  +-spec begin_sync(recon_struct(), state()) -> ru_recon_stats:stats().
  +begin_sync(SyncStruct, State = #ru_recon_state{recon_method = RMethod,
  +                                               recon_struct = Params,
  +                                               sync_round = Round,
  +                                               sync_pid = SrcPid,
  +                                               dhtNodePid = DhtNodePid,
  +                                               ownerRemotePid = OwnerPid,
  +                                               dest_ru_pid = DestRU_Pid,                                       
  +                                               sync_master = IsMaster, 
  +                                               stats = Stats }) ->
  +     case RMethod of
  +         merkle_tree -> 
  +            case IsMaster of
  +                true -> comm:send(SrcPid, 
  +                                  {check_node, comm:this(), 
  +                                   merkle_tree:get_interval(SyncStruct), 
  +                                   merkle_tree:get_hash(SyncStruct)});            
  +                false ->comm:send(DestRU_Pid, 
  +                                  {request_recon, OwnerPid, Round, true, 
  +                                   res_shared_interval, merkle_tree,
  +                                   [{interval, merkle_tree:get_interval(SyncStruct)},
  +                                    {senderPid, comm:this()}]})
  +            end,
  +            ru_recon_stats:set(
  +              [{tree_compareLeft, ?IIF(IsMaster, 1, 0)},
  +               {tree_size, merkle_tree:size_detail(SyncStruct)}], Stats);
  +         bloom when IsMaster ->
  +            DestKey = select_sync_node(proplists:get_value(interval, Params)),
  +            comm:send_local(DhtNodePid, 
  +                            {lookup_aux, DestKey, 0, 
  +                             {send_to_group_member, rep_upd, 
  +                              {request_recon, OwnerPid, Round, false, reconciliation, bloom, SyncStruct}}}),
  +            comm:send_local(self(), {shutdown, {ok, build_struct}}),
  +            Stats;
  +         art ->
  +            {AOk, ARStats} = case IsMaster of
  +                true -> art_recon(SyncStruct, proplists:get_value(art, Params), State);                    
  +                false ->
  +                    comm:send(DestRU_Pid, 
  +                              {request_recon, OwnerPid, Round, true, 
  +                               res_shared_interval, art,
  +                               [{interval, art:get_interval(SyncStruct)},
  +                                {senderPid, comm:this()},
  +                                {art, SyncStruct}]}),
  +                    {no, Stats}
  +            end,            
  +            comm:send_local(self(), {shutdown, ?IIF(AOk =:= ok, sync_finished, client_art_send)}),
  +            ARStats
  +    end.
  +
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % Merkle Tree specific
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec build_recon_struct(Method, DB_Chunk, Args) -> Recon_Struct when
        is_subtype(Method,       method()),
        is_subtype(DB_Chunk,     {intervals:interval(), db_as_list_enc()}),
        is_subtype(Args,         build_args()),
        is_subtype(Recon_Struct, bloom_recon_struct() | merkle_tree:merkle_tree() | art:art()).
  
  build_recon_struct(bloom, {I, DBItems}, {Fpr}) ->
      ElementNum = length(DBItems),
      HFCount = bloom:calc_HF_numEx(ElementNum, Fpr),
      Hfs = ?REP_HFS:new(HFCount),    
  
negative.code:                                 ?REP_BLOOM:new(ElementNum, Fpr, Hfs)),
      #bloom_recon_struct{ interval = I, keyBF = KeyBF, versBF = VerBF };
  
  build_recon_struct(merkle_tree, {I, DBItems}) ->
      Tree = merkle_tree:bulk_build(I, DBItems),
      merkle_tree:gen_hash(Tree);
  
  build_recon_struct(art, Chunk) ->
      Tree = build_recon_struct(merkle_tree, Chunk),
      art:new(Tree).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  