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

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

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