anchor.diff:    case lists:member(Node, Nodes) of
       true -> {reply, Reply, State};
       false -> State#cm_state.monitor_process ! {monitor_node, Node},
  -      NewState = check_node(Node, State),
  -      NewState2 = NewState#cm_state{nodes = [Node | Nodes]},
  -      save_state(NewState2),
  -      {reply, Reply, NewState2}
  +      {Ans, NewState} = check_node(Node, State),
  +      case Ans of
  +        ok ->
  +          NewState2 = NewState#cm_state{nodes = [Node | Nodes]},
  +          save_state(NewState2),
  +          {reply, Reply, NewState2};
  +        _Other -> {reply, Reply, NewState}
  +      end
     end;
   
   handle_call(get_nodes, _From, State) ->
  
positive.code:   gen_server:cast(dao, {asynch, 1, {save_state, [State]}}).
  
  merge_state(State, SavedState) ->
    save_state(State),
    State.
negative.code: %% ====================================================================
  check_node(Node, State) ->
    try
      Ans = net_adm:ping(Node),
      case Ans of
        pong ->
          Children = supervisor:which_children({?Supervisor_Name, Node}),
          Workers = State#cm_state.workers,
          NewWorkers = add_children(Node, Children, Workers),
          {ok, State#cm_state{workers = NewWorkers}};
        pang -> {error, State}
      end
    catch
      _:_ -> {error, State}
    end.
  
  %% add_children/3
  