anchor.diff:              {reply, {TaskName, format_schedule({TaskName, Task})}, State}
       end;
   handle_call({members}, _From, State) ->
  -    {reply, State#state.nodes, State};
  +    {reply, dict:to_list(State#state.nodes), State};
   handle_call({join, Node}, _From, State = #state{ nodes = Nodes }) ->
  -    NewNodes = [{Node, joinning}|Nodes],
  +    NewNodes = dict:store(Node, joinning, Nodes),
       % TODO: health checks, if 'Node' is healthy, node status changes 
       %       alive.
  -    {noreply, State#state{nodes = NewNodes}};
  +    {reply, ok, State#state{ nodes = NewNodes }};
   handle_call({leave, Node}, _From, State = #state{ nodes = Nodes }) ->
  -    proplists:delete(Node, Nodes), 
  -    % TODO: health checks, if 'Node' is healthy, node status changes 
  -    %       alive.
  -    {noreply, State};
  +    case dict:find(Node, Nodes) of 
  +        error ->
  +           {reply, {Node, not_found_node}, State};
  +        _ ->
  +           % TODO: health checks, if 'Node' is healthy, node status changes 
  +           %       alive.
  +           NewNodes = dict:store(Node, leaving, Nodes),
  +           {reply, ok, State#state{ nodes = NewNodes }}
  +    end;
   handle_call(Request, _From, State) ->
  +    lager:info("test"),
       {reply, {Request, bad_request}, State}.
   
   %%--------------------------------------------------------------------
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  handle_cast(_Msg, State) ->
      {noreply, State}.
  
  %%--------------------------------------------------------------------
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  init([]) ->
      {ok, #state{ nodes = dict:store(node(), join, dict:new()) }}.
  
  %%--------------------------------------------------------------------
  %% @private
  