     getMaxOffset: =>
         if @length > 0 then @last().getEndOffset() else 0
 
+    getStartOffsetOfLastLine: =>
+        # Get the offest of the beginning of the last line, not the end of the last line
+        if @length > 0 then @last().getStartOffset() else 0
+
     fetchInitialData: =>
         # When we request `read` without passing an offset, we get given
         # back just the end offset of the file
         $.ajax
             url: @url()
-            data: {@path, length: @requestLength}
+            data: {@path, length: @baseRequestLength}
         .done (response) =>
-            offset = response.offset - @requestLength
+            offset = response.offset - @baseRequestLength
             offset = orZero offset
 
             request = @fetch data:
                 path: @path
                 offset: offset
+                length: @initialRequestLength
 
             @trigger 'initialdata'
 

        # console.log "isMovingForward", isMovingForward
        # console.log "isMovingBackward", isMovingBackward


        # split on newlines
        lines = result.data.split @delimiter
            
        # always omit last element (either it's blank or an incomplete line)
        lines = _.initial(lines) unless not @state.get('moreToFetch')


        # there's more to fetch
        moreToFetch: undefined
        moreToFetchAtBeginning: undefined

        currentRequestLength: @::baseRequestLength



    url: => "#{ config.apiRoot }/sandbox/#{ @taskId }/read"

