anchor.diff:      user_loop(Settings, Client, Node, #{}).
   
   create_new_node(Client, Settings) ->
  -    Coordinator = get_coordinator_pid(),
       amoc_throttle:send_and_wait(?NODE_CREATION_THROTTLING, create_node),
       Node = create_pubsub_node(Client, Settings),
  -    Coordinator ! {new_node, self(), Node},
  +    amoc_coordinator:add(?MODULE, {Client, Node}),
       Node.
   
   user_loop(Settings, Client, Node, Requests) ->
  
positive.code: 
              amoc_throttle:start(?NODE_CREATION_THROTTLING, NodeCreationRate),
              amoc_throttle:start(?PUBLICATION_THROTTLING, PublicationRate),
              {ok, Settings};
          Error -> Error
      end.
  
negative.code:     [amoc_metrics:init(counters, Metric) || Metric <- Counters],
      [amoc_metrics:init(times, Metric) || Metric <- Times].
  
  %%------------------------------------------------------------------------------------------------
  %% Coordinator
  %%------------------------------------------------------------------------------------------------
  start_coordinator(Settings) ->
      amoc_coordinator:start(?MODULE, get_coordination_plan(Settings), ?COORDINATOR_TIMEOUT).
  
  get_coordination_plan(Settings) ->
      N = get_no_of_node_subscribers(Settings),
  
      [{N, [fun subscribe_users/2,
            users_activation(Settings,n_nodes),
            coordination_delay(Settings)]},
       {all,users_activation(Settings,all_nodes)}].
  
  subscribe_users(_, CoordinationData) ->
      PidsAndNodes = [{Pid, Node} || {Pid, {_Client, Node}} <- CoordinationData],
      [subscribe_msg(P, N) || {P, _}<-PidsAndNodes, {_, N} <- PidsAndNodes].
  
  users_activation(Settings, ActivationPolicy) ->
      case get_parameter(activation_policy, Settings) of
          ActivationPolicy ->
              fun(_, CoordinationData) ->
                  [schedule_publishing(Pid) || {Pid, _} <- CoordinationData]
              end;
          _ -> fun(_) -> ok end
      end.
  
  coordination_delay(Settings) ->
      Delay = get_parameter(coordinator_delay, Settings),
      fun(coordinate) -> timer:sleep(Delay);
          (_) -> ok
      end.
  
  subscribe_msg(Pid, Node) ->
      Pid ! {subscribe_to, Node}.
  
  %%------------------------------------------------------------------------------------------------
  %% User
  