   @queueMin: 2
   @queue: []
   @current: null
+  @currentFetcher = null
   
   @next: =>
     @current = null

      @queue.push SubjectPair.create(pair)
  
  @setCurrent: =>
    @current = @queue.shift()
  
  @fetcher: ->

      @current
  
  @fetch: ->
    return @currentFetcher if @currentFetcher
    if @queueSize() < @queueMin
      @currentFetcher = @fetcher().then(@loadSubjects).then @setCurrent
    else
      d = deferred()
      d.resolve @current
