anchor.diff:  %% --------------------------------------------------------------------
   %%% Internal functions
   %% --------------------------------------------------------------------
  +%%keyreplace(Key, N, TupleList1, NewTuple) -> TupleList2
  +add([{node, Node}, {state, State1}, {time, Time}, {ip, Ip}], Store) ->
  +	lists:keystore(Node, 1, Store, {Node, [{state, State1}, {time, Time}, {ip, Ip}]}).
   %% --------------------------------------------------------------------
   %%% Test functions
   %% --------------------------------------------------------------------
  
positive.code: %% --------------------------------------------------------------------
  -include_lib("eunit/include/eunit.hrl").
  -ifdef(TEST).
  -endif.
negative.code: %%          {noreply, State, Timeout} |
  %%          {stop, Reason, State}            (terminate/2 is called)
  %% --------------------------------------------------------------------
  handle_cast({save, [{node, Node}, {state, State1}, {time, Time}, {ip, Ip}]}, #state{store = Store} = State) ->
  	error_logger:info_msg("save node : ~p in state ~p with time : ~p~n", [Node, State, Time]),		
  	New_store = add([{node, Node}, {state, State1}, {time, Time}, {ip, Ip}], Store),
      {noreply, State#state{store = New_store}};
  
  handle_cast(Msg, State) ->
  	error_logger:info_msg("got unknown message : ~p~n", [Msg]),
      {noreply, State}.
  
  %% --------------------------------------------------------------------
  