anchor.diff:  
   -export([start_link/1, init/1, on/2, check_config/0]).
   
  -%-define(TRACE(X,Y), io:format(X,Y)).
  --define(TRACE(X,Y), ok).
  +-define(TRACE(X,Y), io:format("[~p] " ++ X ++ "~n", [self()] ++ Y)).
  +%-define(TRACE(X,Y), ok).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % constants
  
positive.code:                          ok %TODO
                   end,
      comm:send_local(SourcePid, {get_sync_struct_response, SyncStruct}),
      ok.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % BloomFilter building
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  %% @doc Build two bloom filter, one over all keys (BF1), 
  %%      one over all keys concatenated with their version (BF2)
  -spec build_bloom(db_chunk()) -> sync_struct().
  build_bloom({Interval, _DB}) ->
      %create bloom filter
      Fpr = 0.001,           %TODO move to config?
      ElementNum = 10000,    %TODO set to node db item cout + 5%?
      HFCount = bloom:calc_HF_numEx(ElementNum, Fpr),
      Hfs = ?REP_HFS:new(HFCount),
      BF1 = ?REP_BLOOM:new(ElementNum, Fpr, Hfs),
      BF2 = ?REP_BLOOM:new(ElementNum, Fpr, Hfs),    
      %fill bloom filter
      %TODO
  	%lists:min(?RT:get_replica_keys(Key)) %map keys to their smallest associated key
  	{Interval, comm:this(), BF1, BF2}.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Startup
  
negative.code: %% @doc Message handler when trigger triggers (INITIATE SYNC BY TRIGGER)
  -spec on(message(), state()) -> state().
  on({?TRIGGER_NAME}, {SyncMethod, TriggerState}) ->
      DhtNodePid = pid_groups:find_a(dht_node),
      comm:send_local(DhtNodePid, {get_state, comm:this(), my_range}),
      
  	NewTriggerState = trigger:next(TriggerState),
      ?TRACE("Trigger NEXT", []),
  	{SyncMethod, NewTriggerState};
  
  %% @doc retrieve node responsibility interval
  on({get_state_response, NodeDBInterval}, State) ->
      %?TRACE("DB-Intervall ~p", [NodeDBInterval]),
      DhtNodePid = pid_groups:find_a(dht_node),
      comm:send_local(DhtNodePid, {get_chunk, self(), NodeDBInterval, 10000}), %TODO remove 10k constant
      State;
  %% @doc retriebe local node db
  on({get_chunk_response, DB}, {SyncMethod, _TriggerState} = State) ->
      %?TRACE("Node-DB ~p", [DB]),
      MyPid = self(),
      Pid = spawn(fun() -> build_SyncStruct(MyPid, SyncMethod, DB) end),    
      ?TRACE("get_chunk: let [~p] build SyncStruct", [Pid]),
      State;
  %% @doc SyncStruct is build and can be send to a node for synchronization
  on({get_sync_struct_response, _SyncStruct}, State) ->
      %?TRACE("SyncStruct ~p", [SyncStruct]),
      %1) SELECT DEST    
      %3) SEND SyncStruct 2 DEST    
      State;
  
  on({recv_sync, bloom, {_Interval, _Bloom}}, State) ->
  