anchor.diff:      {_Ans, NewState} = start_worker(N, J, A, State),
       init_cluster_jobs_dominance(NewState, Jobs, Args, Nodes1, [N | Nodes2]).
   
  -%% start_worker/4
  -%% ====================================================================
  -%% @doc Processes client request using PlugIn:handle function. Afterwards,
  +%%--------------------------------------------------------------------
  +%% @private
  +%% @doc
  +%% Processes client request using PlugIn:handle function. Afterwards,
   %% it sends the answer to dispatcher and logs info about processing time.
  +%% @end
  +%%--------------------------------------------------------------------
   -spec start_worker(Node :: atom(), Module :: atom(), WorkerArgs :: term(), State :: term()) -> Result when
  -    Result :: {Answer, NewState},
  -    Answer :: ok | error,
  -    NewState :: term().
  -%% ====================================================================
  +      Result :: {Answer, NewState},
  +      Answer :: ok | error,
  +      NewState :: term().
   start_worker(Node, Module, WorkerArgs, State) ->
       try
           {ok, LoadMemorySize} = application:get_env(?APP_NAME, worker_load_memory_size),
  
positive.code:                    end,
      MergedState2.
  
  %% get_workers_list/1
  %% ====================================================================
  %% @doc This function provides the list of all alive workers with information
  %% at which nodes they are working.
  -spec get_workers_list(State :: term()) -> Workers when
      Workers :: list().
  %% ====================================================================
  get_workers_list(State) ->
      ListWorkers = fun({Node, Module, _ChildPid}, Workers) ->
          [{Node, Module} | Workers]
      end,
      lists:foldl(ListWorkers, [], State#cm_state.workers).
  
  %% update_dispatchers_and_dns/3
  %% ====================================================================
  %% @doc This function updates all dispatchers and dnses.
  -spec update_dispatchers_and_dns(State :: term(), UpdateDNS :: boolean(), IncreaseStateNum :: boolean()) -> NewState when
      NewState :: term().
  %% ====================================================================
  update_dispatchers_and_dns(State, UpdateDNS, IncreaseStateNum) ->
      ?debug("update_dispatchers_and_dns, state: ~p, dns: ~p, increase state num: ~p", [State, UpdateDNS, IncreaseStateNum]),
      case UpdateDNS of
  
negative.code:     ?warning("Wrong call: ~p", [_Request]),
      {reply, wrong_request, State}.
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Handling cast messages
  %% @end
  %%--------------------------------------------------------------------
  -spec handle_cast(Request :: term(), State :: term()) -> Result when
        Result :: {noreply, NewState}
                | {noreply, NewState, Timeout}
                | {noreply, NewState, hibernate}
                | {stop, Reason :: term(), NewState},
        NewState :: term(),
        Timeout :: non_neg_integer() | infinity.
  handle_cast({node_is_up, Node}, State = #cm_state{nodes = Nodes, state_loaded = StateLoaded, state_monitoring = StateMonitoring}) ->
      ?debug("Heartbeat from node: ~p", [Node]),
      case lists:member(Node, Nodes) orelse Node =:= node() of
  