anchor.diff:  
   -required_variable({'ROOM_SIZE', <<"Number of users in a room.">>}).
   -required_variable({'ROOM_CREATION_RATE', <<"Rate of room creations (per minute, def:600)">>}).
  +-required_variable({'GDPR_REMOVAL_RATE', <<"Rate of user removals (per minute, def:1)">>}).
   -required_variable({'PUBLICATION_RATE', <<"Rate of publications (per minute, def:1500)">>}).
   -required_variable({'ACTIVATION_POLICY', <<"Publish after subscribtion of (def: all_rooms | n_rooms)"/utf8>>}).
   -required_variable({'MIM_HOST', <<"The virtual host served by the server (def: <<\"localhost\">>)"/utf8>>}).
   -required_variable({'MUC_HOST', <<"The virtual MUC host served by the server (def: <<\"muclight.localhost\">>)"/utf8>>}).
  +-required_variable({'MIM_REST_ENDPOINT', <<"MongooseIM REST endpoint (def: \"http://localhost:8088\">)">>}).
   
   -define(ALL_PARAMETERS, [
       {room_size, 'ROOM_SIZE', 5, positive_integer},
       {room_creation_rate, 'ROOM_CREATION_RATE', 600, positive_integer},
  +    {gdpr_removal_rate, 'GDPR_REMOVAL_RATE', 1, positive_integer},
       {publication_rate, 'PUBLICATION_RATE', 1500, positive_integer},
       {activation_policy, 'ACTIVATION_POLICY', n_rooms, [all_rooms, n_rooms]},
       {mim_host, 'MIM_HOST', <<"localhost">>, bitstring},
  -    {muc_host, 'MUC_HOST', <<"muclight.localhost">>, bitstring}
  +    {muc_host, 'MUC_HOST', <<"muclight.localhost">>, bitstring},
  +    {mim_rest_endpoint, 'MIM_REST_ENDPOINT', "http://localhost:8088", none}
   ]).
   
  --define(GROUP_NAME, <<"coordinator">>).
   -define(ROOM_CREATION_THROTTLING, room_creation).
   -define(PUBLICATION_THROTTLING, publication).
  -
  --define(COORDINATOR_TIMEOUT, 100000).
  +-define(REMOVAL_THROTTLING, user_removal).
  +
  +%% this prevents user processes from restarting
  +-define(STOP_USER, throw(stop)).
   
   -export([init/0, start/2]).
   
  
positive.code: update_message_ttd(Time, Now) ->
      Interval = Now - Time,
      amoc_metrics:update_time(message_ttd, Interval).
  
  %%------------------------------------------------------------------------------------------------
  %% User connection
  
negative.code:     erlang:monitor(process, Client#client.rcv_pid),
      create_muc_light_room(Client),
      escalus_tcp:set_active(Client#client.rcv_pid, true),
      send_info_to_coordinator(Client),
      user_loop(Client, 0).
  
  send_info_to_coordinator(Client) ->
      lager:debug("Process ~p, sending info about myself to coordinator", [self()]),
      coordinator:register_user(Client).
  
  user_loop(Client, Time) ->
      receive
  