anchor.diff:            end,
       {reply, Pid, State};
   handle_call(kill_childs, _From, State) ->
  -    ets:foldl(fun ({_, Pid, MRef}, _) ->
  -                      erlang:demonitor(MRef, [flush]),
  +    ets:foldl(fun ({_, Pid}, _) ->
                         exit(Pid, aggregator_respawn),
  +                      receive
  +                          {'EXIT', Pid, aggregator_respawn} -> ok
  +                      end,
                         true
                 end, true, State#state.ets_map),
       ets:delete_all_objects(State#state.ets_map),
  -    ets:delete_all_objects(State#state.by_mref),
  +    ets:delete_all_objects(State#state.by_pid),
       {reply, ok, State}.
   
   spawn_child_aggregator(BucketName, State) ->
       [Module, Fun, ExtraArgs] = State#state.aggregator_spawn_args,
       {ok, P} = apply(Module, Fun, [BucketName | ExtraArgs]),
  -    MRef = erlang:monitor(process, P),
  -    Tuple = {BucketName, P, MRef},
  +    link(P),
  +    Tuple = {BucketName, P},
       ets:insert(State#state.ets_map, Tuple),
  -    ets:insert(State#state.by_mref, Tuple),
  +    ets:insert(State#state.by_pid, Tuple),
       P.
   
   cleanup_dead_aggregator(Tuple, State) ->
       true = ets:delete_object(State#state.ets_map, Tuple),
  -    true = ets:delete_object(State#state.by_mref, Tuple).
  +    true = ets:delete_object(State#state.by_pid, Tuple).
   
   %%--------------------------------------------------------------------
   %% Function: handle_cast(Msg, State) -> {noreply, State} |
  
positive.code: %% Description: Initiates the server
  %%--------------------------------------------------------------------
  init([[_Module, _Fun, _ExtraArgs] = AggregatorSpawnArgs])->
      {ok, #state{ets_map = ets:new(ets_map, []),
                  aggregator_spawn_args = AggregatorSpawnArgs,
                  by_mref = ets:new(by_mref, [{keypos, 3}])}}.
  
  %%--------------------------------------------------------------------
  %% Function: %% handle_call(Request, From, State) -> {reply, Reply, State} |
  
negative.code: 
  -export([get_aggregator_for/1, kill_childs/0, call_aggregator_for/3, call_aggregator_for/2]).
  
  -record(state, {ets_map, aggregator_spawn_args, by_pid}).
  
  get_aggregator_for(BucketName) ->
      gen_server:call(?MODULE, {get_aggregator_for, BucketName}).
  