anchor.diff:  send_reply(Id, Target, Msg, [Parent | Rest], Shepherd) ->
       comm:send(Parent, {bulkowner, reply, Id, Target, Msg, Rest}, [{shepherd, Shepherd}]).
   
  --spec send_reply_failed(Id::uid:global_uid(), Target::comm:mypid(), Msg::comm:message(), Parents::[comm:mypid()], Shepherd::comm:erl_local_pid(), FailedPid::comm:mypid()) -> ok.
  +-spec send_reply_failed(Id::uid:global_uid(), Target::comm:mypid(), Msg::comm:message(),
  +                        Parents::[comm:mypid()], Shepherd::comm:erl_local_pid(),
  +                        FailedPid::comm:mypid()) -> ok.
   send_reply_failed(_Id, Target, Msg, [], _Shepherd, Target) ->
       log:log(warn, "[ ~p ] cannot send bulkowner_reply with message ~p (target node not available)",
               [pid_groups:pid_to_name(self()), Msg]);
  
positive.code:     DHTNode = pid_groups:find_a(dht_node),
      comm:send_local(DHTNode, {bulkowner, start, Id, I, Msg}).
  
  -spec issue_send_reply(Id::uid:global_uid(), Target::comm:mypid(), Msg::comm:message(), Parents::[comm:mypid()]) -> ok.
  issue_send_reply(Id, Target, Msg, Parents) ->
      DHTNode = pid_groups:find_a(dht_node),
      comm:send_local(DHTNode, {bulkowner, reply, Id, Target, Msg, Parents}).
  
negative.code:     send_reply(Id, Target, Msg, Parents, Shepherd).
  
  %% @doc main routine. It spans a broadcast tree over the nodes in I
  -spec bulk_owner(State::dht_node_state:state(), Id::uid:global_uid(),
                   I::intervals:interval(), Msg::comm:message(),
                   Parents::[comm:mypid()]) -> ok.
  bulk_owner(State, Id, I, Msg, Parents) ->
  %%     log:pal("bulk_owner:~n self:~p,~n int :~p,~n rt  :~p~n", [dht_node_state:get(State, node), I, ?RT:to_list(State)]),
      Neighbors = dht_node_state:get(State, neighbors),
  