 exports.update = update
 exports.updateMany = updateMany
 exports.info = info
-exports.fetch = fetch+exports.fetch = fetch

    if currentString.length > 0
        numberOfPoints = currentString.length / pointSize
        startInterval = previousInterval - (step * (numberOfPoints - 1))
        console.log 'packing', startInterval, currentString
        packedStrings.push([startInterval, new Buffer(currentString, 'binary')])

    # FIXME!!!
    # currentString is an array with tuples of arrayer of data
    # convert to buffers before writing

    console.log 'APA1'
    # Read base point and determine where our writes will start
    packedBasePoint = new Buffer(pointSize)
    fs.read fd, packedBasePoint, 0, pointSize, archive.offset, (err) ->
        cb err if err
        console.log 'APA2'
        [baseInterval, baseValue] = pack.Unpack(pointFormat, packedBasePoint)

        if baseInterval == 0

                    values = (null for n in [0...points])
                    cb(null, timeInfo, values)
                else
                    # We have data in this hoard, let's read it
                    getOffset = (interval) ->
                        timeDistance = interval - vars.baseInterval
                        pointDistance = timeDistance / archive.secondsPerPoint
                        byteDistance = pointDistance * pointSize
                        a = archive.offset + byteDistance.mod(archive.size)
                        a

                    fromOffset = getOffset(fromInterval)
                    toOffset = getOffset(toInterval)

                    fs.open path, 'r', (err, fd) ->
                        if err then throw err
                        if fromOffset < toOffset
                            # We don't wrap around, can everything in a single read
                            size = toOffset - fromOffset
                            seriesBuffer = new Buffer(size)
