                             try fetchNewData(lineStart: lineStart)
                             offset = 0
                             return try parseRow(
-                                offset: &offset,
                                 cellArray: &cellArray,
                                 row: row)
                         }

    public func forEach(f: ([CSVCell], Int) throws -> Void) throws {
        assert(metadata.separator.isASCII)
        guard buffer.count != 0 else { throw CSVProcessorErrors.reused }
        var offset = 0
        var cellArray = [CSVCell]()
        var parsedValidRow = false
        cellArray.reserveCapacity(metadata.columns.count)
        if metadata.hasHeaderRow {
            parsedValidRow = try parseRow(
                offset: &offset, cellArray: &cellArray, row: 0)
            cellArray.removeAll(keepingCapacity: true)
        }
        var rowCount = 0
        while true {
            parsedValidRow = try parseRow(
                offset: &offset,
                cellArray: &cellArray,
                row: rowCount)
            if !parsedValidRow { return }

                try fetchNewData(lineStart: lineStart)
                offset = 0
                return try parseRow(
                    cellArray: &cellArray,
                    row: row)
            default:
