anchor.diff:  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% @doc Looks up the swarm options for a given swarm id, either as string or binary.
   
  --spec get_swarm_options(string() | ppspp_options:swarm_id()) ->
  +-spec get_swarm_options(ppspp_options:swarm_id()) ->
       {ok, ppspp_options:options() } | {error, any()}.
  -get_swarm_options(Swarm) ->
  -    case where_is(Swarm) of
  -        {ok, Pid} -> gen_server:call(Pid, get_swarm_options);
  -        Error -> Error
  +get_swarm_options(Swarm_id) ->
  +    case gproc:lookup_local_properties({?MODULE, Swarm_id}) of
  +        [] -> {error, ppspp_swarm_not_registered};
  +        [{_Pid, Swarm_Options} | _ ] -> {ok, Swarm_Options }
       end.
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
positive.code: -spec init([ppspp_options:swarm_id() | ppspp_options:options()]) -> {ok,state()}.
  init([Swarm_id , Swarm_Options]) ->
      process_flag(trap_exit, true),
      ?INFO("swarm: ~p started with swarm_id:~p~n and options: ~p~n",
            [self(), Swarm_id , Swarm_Options]),
      {ok, #state{swarm_id = Swarm_id , options= Swarm_Options} }.
  
negative.code:     end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% @doc Looks up the pid for a given swarm id.
  
  -spec where_is(ppspp_options:swarm_id()) -> {ok, pid()} | {error,_}.
  where_is(Swarm_id) ->
      case Pid = gproc:lookup_local_name({?MODULE, Swarm_id}) of
          undefined -> {error, ppspp_swarm_worker_not_found};
  