anchor.diff:  	start_timer(),
   	{noreply, State};
   	
  -handle_info({udp, Socket, IPtuple, InPortNo, Packet}, State) ->
  -	error_logger:info_msg("~n~nFrom IP: ~p~nPort: ~p~nData: ~p~n", [IPtuple, InPortNo, Packet]),
  -	decode_message(Packet),
  +handle_info({udp, Socket, Ip, InPortNo, Packet}, State) ->
  +	error_logger:info_msg("~n~nFrom IP: ~p~nPort: ~p~nData: ~p~n", [Ip, InPortNo, Packet]),
  +	Node = decode_message(Packet),
  +	save_node(lists:append(Node,[{ip, Ip}])),	
   	{noreply, State};
   
   handle_info(_Info, State) ->
  
positive.code: %% --------------------------------------------------------------------
  %%% Internal functions
  %% --------------------------------------------------------------------
  %% <<"SEARCH:COOKIE:NODE:STATE:TIME">>
  decode_message(<<Action:7/binary, Cookie:16/binary, Rest/binary>> = Message) ->	
  	Is_valid_cookie = decode_cookie(Cookie, get_local_cookie()),
  	[Node, R1] = binary:split(Rest,<<":">>),
  	[State, Time] = binary:split(R1,<<":">>),
  	decode_message(Is_valid_cookie, Node, State, Time).
  	
  decode_message(true, Node, State, Time) ->	
  	error_logger:info_msg("Found : ~p in state : ~p ~n", [Node, State]),
  	[{node, Node}, {state, State}, {time, Time}];
  decode_message(false, Node, State, Time) ->	
  	error_logger:info_msg("Cookie which was received is not a requested one~n").
  	
  save_node(Node) ->
  	ok.
  	
  start_timer() ->
  	erlang:send_after(get_env(timer), self(), send_alive).
  
negative.code: -include_lib("eunit/include/eunit.hrl").
  -ifdef(TEST).
  encode_message_test() ->	
  	?assertEqual([{valid, false}, {node, <<"Node">>}, {state, <<"State">>}, {time, <<"Time">>}],decode_message(<<"SEARCH:1234567890123456Node:State:Time">>)).
  
  decode_cookie_test() ->
  	crypto:start(),
  