anchor.diff:              case queue:out(Waiting) of
               {empty, _} ->
                   {noreply, State#state{busy = Busy2}};
  -            {{value, {FromPid, _Ref} = From}, Waiting2} ->
  +            {{value, From}, Waiting2} ->
                   {ok, Worker} = ibrowse:spawn_link_worker_process(State#state.url),
  -                monitor_use(FromPid, Worker, Callers),
  +                monitor_client(Callers, Worker, From),
                   gen_server:reply(From, {ok, Worker}),
                   {noreply, State#state{busy = [Worker | Busy2], waiting = Waiting2}}
               end
  
positive.code:     {ok, State}.
  
  
  handle_call(get_worker, {FromPid, _} = From, #state{waiting = Waiting, callers = Callers} = State) ->
      #state{url = Url, limit = Limit, busy = Busy, free = Free} = State,
      case length(Busy) >= Limit of
      true ->
  
negative.code:    end.
  
  handle_info({'EXIT', Pid, _Reason}, #state{busy = Busy, free = Free, waiting = Waiting, callers = Callers} = State) ->
      demonitor_client(Callers, Pid),
      case Free -- [Pid] of
      Free ->
          case Busy -- [Pid] of
  