                 Tracker.afterFlush (=> @remergeQueries()), Number.POSITIVE_INFINITY
 
 
-    _deleteComputationQsRequests: (computation) ->
-        return if not computation._requestingData
-        for qsString in _.keys @_requestersByQs
-            delete @_requestersByQs[qsString][computation._id]
-            if _.isEmpty @_requestersByQs[qsString]
-                delete @_requestersByQs[qsString]
-        computation._requestingData = false
-        @_requestsChanged = true
-        Tracker.afterFlush (=> @remergeQueries()), Number.POSITIVE_INFINITY
-
-
     requestQuery: (querySpec) ->
         J.assert Tracker.active
 


        if @isQueryReady querySpec
            modelClass = J.models[querySpec.modelName]
            options = {}
            for optionName in ['fields', 'sort', 'skip', 'limit']
                if querySpec[optionName]? then options[optionName] = querySpec[optionName]

            if Tracker.active
                results = J.List Tracker.nonreactive ->

    # Snapshot of what we last successfully asked the server for
    _unmergedQsSet: {} # mergedQuerySpecString: true
    _mergedQsSet: {} # mergedQuerySpecString: true


    _deleteComputationQsRequests: (computation) ->
        return if not computation._requestingData
        for qsString in _.keys @_requestersByQs
            delete @_requestersByQs[qsString][computation._id]
            if _.isEmpty @_requestersByQs[qsString]
                delete @_requestersByQs[qsString]
        computation._requestingData = false
        @_requestsChanged = true
        Tracker.afterFlush (=> @remergeQueries()), Number.POSITIVE_INFINITY


    _qsToFindOptions: (qs) ->
        options = {}
        for optionName in ['fields', 'sort', 'skip', 'limit']
            if qs[optionName]? then options[optionName] = J.util.deepClone qs[optionName]
        options


    checkQuerySpec: (querySpec) ->
