               res.timestamp = @firstTimestamp.subtract(1, 'ms')
 
         res
-
-    growRequestLength: (previousParseTimestamp, lastParseTimestamp) ->
-        return if !previousParseTimestamp? or !lastParseTimestamp?
-
-        # Only grow the request length if we request quickly in succession
-        delta = lastParseTimestamp - previousParseTimestamp
-
-        if delta < 5000 and @state.get('currentRequestLength') <= @maxRequestLength
-            newRequestLength = parseInt(@state.get('currentRequestLength') * @requestLengthGrowthFactor, 10)
-            newRequestLength = @maxRequestLength if newRequestLength > @maxRequestLength
-
-            @state.set('currentRequestLength', newRequestLength)
-
-    shrinkRequestLength: ->
-        return if @state.get('currentRequestLength') <= @baseRequestLength
-
-        newRequestLength = parseInt(@state.get('currentRequestLength') / @requestLengthGrowthFactor, 10)
-        newRequestLength = @baseRequestLength if newRequestLength < @baseRequestLength
-
-        @state.set('currentRequestLength', newRequestLength)
 
 
     # Static Methods -----------------------------------------------------------

    fetch: (params = {}) ->
        defaultParams =
            remove: false
            data: _.extend {@path, length: @state.get('currentRequestLength'), grep: @grep}, params.data

        request = super(_.extend params, defaultParams)



    parse: (result, options) =>
        @nextOffset = result.nextOffset

        # bail early if no new data
        if result.data.length is 0
            return []

        @state.set('moreToFetch', (result.data.length is options.data.length) and ((offset >= @getMaxOffset()) or @getMinOffset() is 0))
        @state.set('moreToFetchAtBeginning', offset > 0 and @getMinOffset() > 0)

        # split on newlines
        lines = _.initial(result.data.match /[^\n]*(\n|$)/g)

        # If out batch lines up with the end and the last line doesn't end with a newline, append the first line
        if result.offset > 0 and result.offset is @getMaxOffset()
            origLine = @at(-1)
            unless origLine.get('data').endsWith '\n'
                origLine.set
                    data: origLine.get('data') + lines[0]
                lines = _.rest(lines)

        # If our batch lines up with the beginning and doesn't end with a newline, prepend the last line
        if result.offset + result.data.length is @getMinOffset()
            origLine = @at(0)
            lastLine = _.last(lines)
            unless lastLine.endsWith '\n'
                origLine.set
                    data: lastLine + origLine.get('data')
                    offset: origLine.get('offset') - lastLine.length
                lines = _.initial(lines)

        # create the objects for LogLine models
        @lastTimestamp = null
        @firstTimestamp = null
        offset = result.offset
        res = lines.map (data) =>
          tryTimestamp = moment data # Try builtin ISO 8601 timetamp strings
          tryTimestampCustom = moment data, 'HH:mm:ss.SSS' # Try custom format
