     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'
 

    comparator: 'offset'

    delimiter: /\n/
    # How much we request at a time
    requestLength: 30000

    # Did we fetch all `requestLength` last time? If it is it likely means
    # there's more to fetch
    moreToFetch: false

    # Store collection state on a model so it can be observed by others (events)
    state: new Backbone.Model

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

        currentRequestLength: @::baseRequestLength



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

