anchor.diff:  test_single_add(_Config) ->
   %    log:log("join nodes", []),
       log:log("add nodes", []),
  -    synchronous_add(4, 5),
  +    synchronous_add(config:read(replication_factor), config:read(replication_factor)+1),
       %timer:sleep(5000), % enable to see rest of protocol
       ok.
   
   test_double_add(_Config) ->
   %    log:log("join nodes", []),
       log:log("add nodes", []),
  -    synchronous_add(4, 6),
  +    synchronous_add(config:read(replication_factor), config:read(replication_factor)+2),
       %timer:sleep(5000), % enable to see rest of protocol
       ok.
   
   test_triple_add(_Config) ->
   %    log:log("join nodes", []),
       log:log("add nodes", []),
  -    synchronous_add(4, 7),
  +    synchronous_add(config:read(replication_factor), config:read(replication_factor)+3),
       %timer:sleep(5000), % enable to see rest of protocol
       ok.
   
  
positive.code:     %comm:send_local(RMLeasesPid, Msg),
  
      % what do we expect to happen? takeover and merge should succeed
      wait_for_messages_after(RMLeasesPid, [merge_after_rm_change], 
                              fun () -> 
                                      comm:send_local(RMLeasesPid, Msg) 
                              end),
      ok.
  
  
negative.code:     % node.
  
      DHTNodes = pid_groups:find_all(dht_node),
      IdsAndNodes = lists:sort(
          [
            begin
                comm:send_local(Node, {get_state, comm:this(), [node_id]}),
                receive
                    {get_state_response, [{node_id, Id}]} ->
                        {Id, Node}
                end
            end
            || Node <- DHTNodes]),
      OddNodes = iterate_even_odd(IdsAndNodes,
                                  fun(Val, Even) ->
                                          case Even of
                                              true ->
                                                  ok;
  