anchor.diff:  	 ,monData			 %last system_monitor data
   	}).
   
  +rec_info(ld) -> record_info(fields,ld);
  +rec_info(_)  -> [].
  +
   %% constants
   
   default_triggers() -> 
  
positive.code: add_trigger(Triggers,ID,Fun) -> 
    maybe_restart(ID,[{ID,Fun}|clean_triggers(Triggers,[ID])]).
  
  del_trigger(Triggers,ID) ->
    maybe_restart(ID,clean_triggers(Triggers,[ID])).
  
  maybe_restart(Trig,Triggers) -> 
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  mk_subscriber({pid,To},_) -> mk_send(To);
  mk_subscriber({Proto,{Host,Port}},Pwd) -> mk_send(Proto,Host,Port,Pwd);
  mk_subscriber({log,trc},FN) -> mk_log(trc,open_file(FN));
  mk_subscriber({log,text},FN) -> mk_log(text,open_file(FN));
  mk_subscriber({log,screen},_) -> mk_log(text,group_leader()).
  
  %% send subscribers
  mk_send(Where) ->
    fun(Chunk) ->
        try Where ! Chunk
  