anchor.diff:  
               processor_loop(Parent, Merged, NewCount);
   
  +        % prepare local metrics structure to be sent to another remote node
           {get_metrics, From} ->
               ForRemote = prepare_metrics_for_remote(Metrics),
               From ! {remote_metrics, node(), ForRemote},
               processor_loop(Parent, Metrics, Count);
   
  +        % unregister all metrics handler of a specific remote node
           {unregister_remote, Remote} ->
               lager:debug("remove metrics from remote ~p", [Remote]),
   
  
positive.code: %%% Internal functions
  %%%===================================================================
  
  processor_loop(Parent) ->
      lager:info("spawning asynchronous finder processor at ~p", [self()]),
      processor_loop(Parent, ?EMPTY_METRIC_DIR, 0).
  
  processor_loop(Parent, Metrics, Count) ->
      receive
          {register_handler, Metric, Paths} ->
              NewMetrics = update_or_insert_metric(Paths, Metric, Metrics),
              Parent ! {finder_result, NewMetrics},
  
              processor_loop(Parent, NewMetrics, Count);
  
          {update_metrics, Dir} ->
              {NewMetrics, NewCount} = update_metrics_files(Dir, Count),
              Merged = merge_metric_dir(Metrics, NewMetrics),
  
negative.code:             Parent ! {finder_result, WithoutRemotes},
              processor_loop(Parent, WithoutRemotes, Count);
  
          % integrate the metrics of another remote node into our local
          % metrics data structure so that we are able to directly address
          % 'foreign' metrics via the associated remote node
          {remote_metrics, RemoteNode, RemoteMetrics} ->
              lager:debug("processing metrics from remote node ~p", [RemoteNode]),
  
  