anchor.diff:  % upgrade
   handle_call(Msg,From,OLD) when not is_record(OLD,ld) ->
     handle_call(Msg,From,upgrade(OLD));
  -
  -handle_call({user,Data},_,LD) -> % data from user
  -  NLD = LD#ld{userData=Data},
  -  try {ok,do_user(check_jailed(NLD,userData))}
  -  catch _ -> {ok,NLD}
  -  end;
   
   % admin configs
   handle_call({cfg,timeout_restart,TR},_,LD) when is_integer(TR) ->
  
positive.code:   {ok,LD#ld{subscribers=delete_subscriber(Key,LD)}};
  handle_call({add_subscriber,{Key,Val}},_,LD) ->
    {ok,LD#ld{subscribers=add_subscriber(Key,Val,LD)}}.
  
  % events
  handle_info(trigger,LD) -> % fake trigger for debugging
  
negative.code:   call_wd({reset_subscriber,Key}).
  
  message(Term) ->
    cast_wd({user,Term}).
  
  call_wd(Term) ->
    gen_server:call(?MODULE,Term).
  
  cast_wd(Term) ->
    gen_server:cast(?MODULE,Term).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  init([]) ->
  