anchor.diff:  start_monitoring_node(Node) ->
   	case Node == node() of
   		false ->
  -			erlang:monitor_node(Node, true),
  -			debug:log("monitoring node: ~p", [Node]),
  +			%erlang:monitor_node(Node, true),
  +			%debug:log("monitoring node: ~p", [Node]),
  +			spawn(node, monitor_node, [Node]),
   			{Node, up};
   		true ->
   			{Node, up}
   	end.
  -
  -set_node_down(Node, [{Node, up}|T]) ->
  -	debug:log("setting node down for ~p", [Node]),
  -	state_mon ! #state_change{sender=self(), node=node(), objtype=node, obj=Node, prev_state=up, new_state=down, ts=timestamp:now_i()},
  -	[{Node, down}|T];
  -set_node_down(Node, [{Node, down}|T]) ->
  -	debug:log("setting node down for ~p (already down)", [Node]),
  -	[{Node, down}|T];
  -set_node_down(Node, [H|T]) ->
  -	[H|set_node_down(Node, T)];
  -set_node_down(Node, []) ->
  -	state_mon ! #state_change{sender=self(), node=node(), objtype=node, obj=Node, prev_state=none, new_state=down, ts=timestamp:now_i()},
  -	[{Node, down}].
  -
  -set_node_up(Node, [{Node, down}|T]) ->
  -	debug:log("setting node up for ~p", [Node]),
  -	state_mon ! #state_change{sender=self(), node=node(), objtype=node, obj=Node, prev_state=down, new_state=up, ts=timestamp:now_i()},
  -	start_monitoring_node(Node),
  -	[{Node, up}|T];
  -set_node_up(Node, [{Node, up}|T]) ->
  -	debug:log("setting node up for ~p (already up)", [Node]),
  -	[{Node, up}|T];
  -set_node_up(Node, [H|T]) ->
  -	[H|set_node_up(Node, T)];
  -set_node_up(Node, []) ->
  -	state_mon ! #state_change{sender=self(), node=node(), objtype=node, obj=Node, prev_state=none, new_state=up, ts=timestamp:now_i()},
  -	[start_monitoring_node(Node)].
   
   announce([{Node, up}|T], State) ->
   	case Node == node() of
  
positive.code: 
  find_node_pid(Node) when is_atom(Node) ->
  	rpc:call(Node, erlang, whereis, [node]).
  
negative.code: 
  -export([start/0]).
  -export([init/0]).
  -export([monitor_node/1]).
  
  -include("include/erlmon.hrl").
  
  