anchor.diff:      Fpr = get_fpr(),
       ElementNum = length(DBItems),
       HFCount = bloom:calc_HF_numEx(ElementNum, Fpr),
  -    Hfs = ?REP_HFS:new(HFCount),    
  -    {KeyBF, VerBF} = fill_bloom(DBItems, 
  -                                ?REP_BLOOM:new(ElementNum, Fpr, Hfs), 
  -                                ?REP_BLOOM:new(ElementNum, Fpr, Hfs)),
  -    #bloom_recon_struct{ interval = mapInterval(I, 1), keyBF = KeyBF, versBF = VerBF };
  -
  +    BF = ?REP_BLOOM:new(ElementNum, Fpr, ?REP_HFS:new(HFCount), DBItems),
  +    #bloom_recon_struct{ interval = mapInterval(I, 1), bloom = BF };
   build_recon_struct(merkle_tree, {I, DBItems}) ->
  -    ?TRACE("START BUILD MERKLE", []),
  -    M = merkle_tree:new(I, DBItems, []),
  -    ?TRACE("END BUILD MERKLE", []),
  -    M;
  -
  +    merkle_tree:new(I, DBItems, []);
   build_recon_struct(art, Chunk) ->
       Tree = build_recon_struct(merkle_tree, Chunk),
       art:new(Tree).
  -
  -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  -% bloom_filter specific
  -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  -%% @doc Create two bloom filter of a given database chunk.
  -%%      One over all keys and one over all keys concatenated with their version.
  --spec fill_bloom(DB, Key::Bloom, Version::Bloom) -> {Key2::Bloom, Version2::Bloom} when
  -      is_subtype(DB,    db_as_list_enc()),
  -      is_subtype(Bloom, ?REP_BLOOM:bloom_filter()).
  -fill_bloom([], KeyBF, VerBF) ->
  -    {KeyBF, VerBF};
  -fill_bloom([DB_Entry_Enc | T], KeyBF, VerBF) ->
  -    {KeyOnly, _} = decodeBlob(DB_Entry_Enc),
  -    fill_bloom(T, 
  -               ?REP_BLOOM:add(KeyBF, KeyOnly), 
  -               ?REP_BLOOM:add(VerBF, DB_Entry_Enc)).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % HELPER
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  % @ doc filter, partition and map items of a list in one run
  -spec filterPartitionMap(Filter::Fun, Partition::Fun, Map::Fun, List) -> {True::List, False::List} when
       is_subtype(Fun,  fun((A) -> boolean())),
       is_subtype(List, [A]).                                                                                                     
  filterPartitionMap(Filter, Pred, Map, List) ->
      filterPartitionMap(Filter, Pred, Map, List, [], []).
  
  filterPartitionMap(_, _, _, [], TrueL, FalseL) -> {TrueL, FalseL};
  filterPartitionMap(Filter, Pred, Map, [H | T], TrueL, FalseL) ->
      {Satis, NonSatis} = 
          case Filter(H) of
              true -> case Pred(H) of
                          true -> {[Map(H) | TrueL], FalseL};
                          false -> {TrueL, [Map(H) | FalseL]}
                      end;        
              false -> {TrueL, FalseL}
          end,
      filterPartitionMap(Filter, Pred, Map, T, Satis, NonSatis).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec start_to_dest(MyI, Req, State) -> ok 
  when
    is_subtype(MyI,     intervals:interval()),
  
negative.code:                         ownerLocalPid = Owner,
                          dest_rr_pid = DestRU_Pid,
                          struct = #bloom_recon_struct{ interval = BloomI, 
                                                        bloom = BF},
                          round = Round }) ->
      %if rest interval is non empty start another sync    
      SyncFinished = intervals:is_empty(RestI),
  