anchor.diff:          change_rtransfer_opt({open_fun, {error, test_error}}, RtransferOpts),
   
       %% when
  -    remote_apply(Worker1, rtansfer, start_link, [RtransferOpts2]),
  -    remote_apply(Worker2, rtansfer, start_link, [RtransferOpts2]),
  +    remote_apply(Worker1, rtransfer, start_link, [[get_binding(Worker1) | RtransferOpts2]]),
  +    remote_apply(Worker2, rtransfer, start_link, [[get_binding(Worker2) | RtransferOpts2]]),
   
       Ref1 = remote_apply(
           Worker1, rtransfer, prepare_request,
  
positive.code:         end
      },
      WriteFunOpt = make_opt_fun(write_fun, {ok, ?FILE_HANDLE2, DataSize}),
      RtransferOpts = [ReadFunOpt, WriteFunOpt | ?DEFAULT_RTRANSFER_OPTS],
  
      %% when
      remote_apply(Worker1, rtansfer, start_link, [RtransferOpts]),
      remote_apply(Worker2, rtansfer, start_link, [RtransferOpts]),
  
      Ref1 = remote_apply(
          Worker1, rtransfer, prepare_request,
  
negative.code:     ReadFunOpt = make_opt_fun(read_fun, {ok, ?FILE_HANDLE2, Data}),
      WriteFunOpt = make_opt_fun(write_fun, {ok, ?FILE_HANDLE2, DataSize}),
      CounterPid = spawn(?MODULE, counter, [0]),
      RtransferOpts1 = [ReadFunOpt, WriteFunOpt, get_binding(Worker1)| ?DEFAULT_RTRANSFER_OPTS],
      RtransferOpts2 = [ReadFunOpt, WriteFunOpt, get_binding(Worker2)| ?DEFAULT_RTRANSFER_OPTS],
  
      erlang:set_cookie(node(), ?COOKIE_OP2),
      ct:pal("Worker1: ~p ~p", [Worker1, rpc:call(Worker1, erlang, self,[])]),
      ct:pal("CCM1: ~p ~p", [CCM1, rpc:call(CCM1, erlang, self,[])]),
  
      erlang:set_cookie(node(), ?COOKIE_OP1),
      ct:pal("Worker2: ~p ~p", [Worker2, rpc:call(Worker2, erlang, self,[])]),
      ct:pal("CCM2: ~p ~p", [CCM2, rpc:call(CCM2, erlang, self,[])]),
      
      %% when
      tracer:start(Worker1),
      tracer:start(Worker2),
      tracer:start(CCM1),
      tracer:start(CCM2),
      tracer:start(node()),
      tracer:trace_calls(rtransfer, fetch),
      tracer:trace_calls(rtransfer_test_SUITE, remote_apply),
  
      ?assertMatch({ok, _},
          remote_apply(Worker1, rtransfer, start_link, [RtransferOpts1])
      ),
      
      ?assertMatch({ok, _},
          remote_apply(Worker2, rtransfer, start_link, [RtransferOpts2])
      ),
  
      Ref1 = remote_apply(
          Worker1, rtransfer, prepare_request,
          [Worker2, ?TEST_FILE_UUID, ?TEST_OFFSET, DataSize]
      ),
  
      ct:pal("REF: ~p", [Ref1]),
  
      tracer:trace_calls(gen_server, cast),
      tracer:trace_calls(global, send),
  
      ?assertEqual(ok, 
          remote_apply(Worker1, rtransfer, fetch, 
              [Ref1, notify_fun(CounterPid), on_complete_fun(self())])
      ),
  
      tracer:stop(),
      %% then
      stop_counter(CounterPid),
      ?assertReceivedEqual({counter, 1}, ?TIMEOUT),
      ?assertReceivedEqual({on_complete, {ok, DataSize}}, ?TIMEOUT).
  
  exact_block_size_fetch_test(Config) ->
      %% fetching data of size equal to rtransfer block_size
  
      [Worker1, Worker2 | _] = ?config(op_worker_nodes, Config),
  
      %% given
  