anchor.diff:      comm:send_local(DHTNode, {bulkowner, start, Id, intervals:all(), {bulk_distribute, Proc,
                                                           Pos, Msg, Data}}).
   
  --spec send_reply(Id::uid:global_uid(), Target::comm:mypid(), Msg::comm:message(), Parents::[comm:mypid()], Shepherd::comm:erl_local_pid()) -> ok.
  +-spec send_reply(Id::uid:global_uid(), Target::comm:mypid(), Msg::comm:message(),
  +                 Parents::[comm:mypid()], Shepherd::comm:erl_local_pid()) -> ok.
   send_reply(Id, Target, {?send_to_group_member, Proc, Msg}, [], Shepherd) ->
       comm:send(Target, {bulkowner, reply, Id, Msg}, [{shepherd, Shepherd}, {group_member, Proc}]);
   send_reply(Id, Target, Msg, [], Shepherd) ->
  
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:                     _    -> AccI
                  end
          end,
      % we are responsible for the intersection of the BulkOwner range and our
      % ring maintenance range (plus DB range from ongoing slides).
      MyDBRange = intervals:union(dht_node_state:get(State, my_range),
                                  dht_node_state:get(State, db_range)),
      MyRange0 = lists:foldl(F, Range, MsgFwd),
      MyRange = intervals:intersection(MyRange0, MyDBRange),
      case intervals:is_empty(MyRange) of
          true -> ok;
          _ ->
  