           else
             splices.push [ index, start + read ]
             if index > 0
-              objects[start + read] = record.shift()
+              cache[start + read] = record.shift()
       eol = start + eos
     splices.reverse()
     for splice in splices


  allocateBranches: (penultimate) ->
    address = @nextAddress++
    tier = @_link({ penultimate, address, addresses: [], objects: {} })
    @cache[address] = tier

  allocateLeaves: (_) ->
    address = @nextAddress++
    filename = @filename address
    fs.writeFile filename, "", "utf8", _
    @cache[address] = @_link({ leaves: true, address, objects: [] })

  readLeaves: (tier, _) ->
    filename = @filename tier.address

    eol       = stat.size
    splices   = []
    addresses = []
    cache     = {}
    buffer    = new Buffer(1024)
    while end
      end     = eol
