anchor.diff:  -define(STARTSPEC, {local, ?SRVNAME}).
   -define(PEERNAME, jnode).
   -define(PEERSTR, atom_to_list(?PEERNAME)).
  --define(NERLOMSG(Body), {self(), {Body}}).
  --define(BINDIR, "./").
  +
  +-define(TAG_OK, ok).
  +-define(TAG_ERROR, error).
  +-define(TAG_DATA, data).
  +-define(TAG_CALL, call).
  +-define(NERLOMSG(Tag,Body), {self(), {Tag, [Body]}}).
  +-define(NERLOMSGRCV(From,Tag,Body), {From, {Tag, Body}}).
  +-define(NERLOMSGPART(Key, Value), {Key, Value}).
  +
  +-define(BINDIR, ".").
   -define(JNODEBIN, "jnode").
   
   -record(jsrv, {workers = []
  
positive.code: -behaviour(gen_server).
  
  % public interface
  -export([job/1,send/1]).
  -export([start/0, start/1, start/2, start_link/0, start_link/1, start_link/2, stop/0]).
  
  % gen_server exports
  
negative.code:             % TODO only allow from peer and self()
              log:info(self(), "'bye' triggered: ~p", [From]),
              {stop, normal, S}
      end;
  handle_info({'STOP'},S) ->
      case S#jsrv.worker of
          yes -> 
              log:info(self(),"stopping with state: ~w", [S]),
              {stop, normal, S};
          no  -> 
              {noreply,S}
      end;
  handle_info(Msg,S) ->
      log:info(self(),"info: ~p", [Msg]),
  