anchor.diff:    NewState :: term().
   %% ====================================================================
   init_cluster(State) ->
  -  ?debug("Checking if initialization is needed ~p", [State]),
  +  ?info("Checking if initialization is needed ~p", [State]),
  +  ?info("Nodes ~p, ~n Workers ~p", [State#cm_state.nodes, State#cm_state.workers]),
     Nodes = State#cm_state.nodes,
     case length(Nodes) > 0 of
       true ->
         JobsAndArgs = ?Modules_With_Args,
   
  +      %% Every node is supposed to have a complete set of permament workes.
  +      CreatePermamentWorkersList = fun({Worker, Module, _Child}, Workers) ->
  +        case lists:member(Module, ?PERMAMENT_MODULES) of
  +          true -> [{Worker, Module}, Workers];
  +          _ -> Workers
  +        end
  +      end,
  +      PermamentWorkers = lists:foldl(CreatePermamentWorkersList, [], State#cm_state.workers),
  +      RequiredPermamentWorkers = [{Node, Module, Args} || Node <- Nodes, Module <- ?PERMAMENT_MODULES,
  +                                 {Module2, Args} <- ?Modules_With_Args,
  +                                 not lists:member({Node, Module}, PermamentWorkers),
  +                                 Module =:= Module2],
  +
  +      ?info("Permament nodes to create ~p", [RequiredPermamentWorkers]),
  +      NewStatePermament = init_permament_nodes(RequiredPermamentWorkers, State),
  +
  +      NewStatePermament2 = update_dispatchers_and_dns(NewStatePermament, true, true),
  +      ?info("New state ~p", [NewStatePermament2]),
  +
         CreateRunningWorkersList = fun({_N, M, _Child}, Workers) ->
           [M | Workers]
         end,
  -      Workers = State#cm_state.workers,
  +      Workers = NewStatePermament2 #cm_state.workers,
         RunningWorkers = lists:foldl(CreateRunningWorkersList, [], Workers),
   
         CreateJobsList = fun({Job, A}, {TmpJobs, TmpArgs}) ->
  
positive.code:       State
    end.
  
  %% init_cluster_nodes_dominance/6
  %% ====================================================================
  %% @doc Chooses node for workers when there are more nodes than workers.
  
negative.code: %% ====================================================================
  init([]) ->
    ets:new(?CALLBACKS_TABLE, [named_table, set]),
    ets:new(?MODULE_LIFECYCLE_LISTENERS_ETS, [named_table, set]),
  
    process_flag(trap_exit, true),
    {ok, Interval} = application:get_env(?APP_Name, initialization_time),
    Pid = self(),
  