anchor.diff:      {W, L} = f:lrot(S#jsrv.workers),
       gen_server:cast(W,{job,From,Spec}),
       {noreply, S#jsrv{workers=L}};
  +handle_call({send,Msg},From,S) ->
  +    {W, L} = f:lrot(S#jsrv.workers),
  +    gen_server:cast(W,{send,From,Msg}),
  +    {noreply, S#jsrv{workers=L}};
   handle_call(Msg,From,S) ->
       log:warn(self(), "Cannot understand call from ~p: ~p", [From,Msg]),
       {reply, {error, unknown_msg}, S}.
   
   % @hidden
   handle_cast({job,From,Spec}, S) ->
  -    Result = do_job(Spec),
  +    Result = send_job(S#jsrv.peer,Spec),
  +    gen_server:reply(From, Result),
  +    {noreply, S};
  +handle_cast({send,From,Msg}, S) ->
  +    Result = send_peer(S#jsrv.peer,Msg),
       gen_server:reply(From, Result),
       {noreply, S};
   handle_cast({'STOP'}, S) ->
       case S#jsrv.worker of
           yes -> nop;
  -        no  -> shutdown(S)
  +        no  -> shutdown(S#jsrv.peer,S)
       end,
       log:info(self(),"stopping with state: ~w", [S]),
       {stop, normal, S};    
  
positive.code: 
  stop() ->
      gen_server:cast(?SRVNAME, {'STOP'}).
      
  job(Spec) ->
      gen_server:call(?SRVNAME, {job, Spec}).   
  
  
negative.code: -define(DEFAULT_N, erlang:system_info(schedulers_online) * 2).
  -define(SRVNAME, ?MODULE).
  -define(STARTSPEC, {local, ?SRVNAME}).
  -define(PEERNAME, jnode).
  -define(PEERSTR, atom_to_list(?PEERNAME)).
  -define(NERLOMSG(Body), {self(), {Body}}).
  
  -record(jsrv, {workers = []
                ,worker  = no
  