anchor.diff:  
   find_node_pid(Node) when is_atom(Node) ->
   	rpc:call(Node, erlang, whereis, [node]).
  +
  +monitor_node(Node) ->
  +	debug:log("node: monitoring ~p (~p)", [Node, self()]),
  +	state_mon ! #state_change{sender=self(), node=node(), objtype=?MODULE, obj=Node, prev_state=down, new_state=up, ts=timestamp:now_i()},
  +	erlang:monitor_node(Node, true),
  +	receive
  +		{nodedown, Node} ->
  +			debug:log("node: received nodedown for ~p (~p)", [Node, self()]),
  +			state_mon ! #state_change{sender=self(), node=node(), objtype=?MODULE, obj=Node, prev_state=up, new_state=down, ts=timestamp:now_i()};
  +		M ->
  +			debug:log("node:UNKNOWN: ~p (~p)", [M, self()])
  +	end.
  
positive.code: 				_ ->
  				debug:log("announcing to ~p on ~p", [Pid, Node]),
  				Pid ! #node_announce{sender=self(), pid=self(), node=node(), state=State}
  				%state_mon ! #state_change{sender=self(), node=node(), objtype=?MODULE, obj=Node, prev_state=none, new_state=up, ts=timestamp:now_i()}
  			end,
  			announce(T, State);
  		true ->
  
negative.code: init() ->
  	debug:log("node: initializing"),
  	State = net_adm:world(),
  	NewState = start_monitoring_nodes(State),
  	announce(NewState, NewState),
  	loop(NewState).
  
  loop(State) ->
  	receive
  		_Msg = #node_announce{sender=_Sender, pid=Pid, node=Node, state=TheirState} ->
  			debug:log("received announce for ~p on ~p~n~p", [Pid, Node, TheirState]),
  			start_monitoring_node(Node),
  			loop(State);
  		M ->
  			debug:log("node:UNKNOWN: ~p", [M]),
  			loop(State)
  