anchor.diff:  
   calculation_state(State) ->
     receive
  +  % Starts the calculation
       {calc, WggT} ->
  -      start_calculation(WggT, maps:get(clients, State), maps:get(clientsToPID, State));
  +      start_calculation(WggT, maps:get(clients, State), maps:get(clientsToPID, State)),
  +      calculation_state(State);
  +  % Toggles the correct flag
       toggle ->
         Config = maps:get(config, State),
         {ok, CorrectFlag} = werkzeug:get_config_value(korrigieren, Config),
  
positive.code: %%% @end
  %%%-------------------------------------------------------------------
  -module(koordinator).
  -export([start/0, init_coordinator/1, initial_state/1, twenty_percent_of/1, update_minimum/2, handle_briefterm/4, set_initial_mis/3, transition_to_calculation_state/1]).
  
  log(Message) ->
    Logfile = list_to_atom(lists:concat(["Koordinator@", atom_to_list(node()), ".log"])),
  
negative.code:       UpdatedState = maps:update(config, lists:keyreplace(korrigieren, 1, Config, {korrigieren, NewFlag}), State),
        log(["Correct flag is now set to: ", NewFlag, " from: ", CorrectFlag]),
        calculation_state(UpdatedState);
    % Ask all ggTs current Mi
      prompt ->
        prompt_all_ggt(maps:get(clientsToPID, State), maps:get(clients, State)),
        calculation_state(State);
    % Pings all ggTs
      nudge ->
        check_status_all_ggt(maps:get(clientsToPID, State), maps:get(clients, State)),
        calculation_state(State);
      kill ->
        shutdown(State);
    % ggT process signals its mi
      {briefmi, {ClientName, CMi, CZeit}} ->
        log([atom_to_list(ClientName), " reports new Mi ", integer_to_list(CMi), " at ", werkzeug:now2string(CZeit)]),
        UpdatedMinimumState = maps:update(smallestGgT, min(CMi, maps:get(smallestGgT, State)), State),
        calculation_state(UpdatedMinimumState);
    % ggT process is done
      {From, briefterm, {ClientName, CMi, CTermZeit}} ->
        Config = maps:get(config, State),
        {ok, CorrectFlag} = werkzeug:get_config_value(korrigieren, Config),
        maybe_log_wrong_term(CMi, maps:get(smallestGgT, State)),
        if
          CorrectFlag =:= true ->
            handle_briefterm(State, CMi, From, CTermZeit);
          true ->
            log([atom_to_list(ClientName), " reports termination with ggT ", CMi, " at ", werkzeug:now2string(CTermZeit)])
        end,
        calculation_state(State)
    end.
  
  set_neighbors(ClientsToPID, [Middle, Last], [First, Second | _Tail]) ->
    log(["Set neighbour for ggT-process ", atom_to_list(Last), " with neighbours: ", atom_to_list(Middle), " ", atom_to_list(First)]),
  