           collection.insert doc, (err) ->
             return stream.emit 'error', err  if err
         )
-        .on 'close', -> queue.next()
+        .on 'close', -> next()
 
-    queue.push ->
+    async.series queue, ->
       collection.createIndex 'zip'
 
-    daisy queue
-
   return stream

fs            = require 'fs'
csv           = require 'csv'
nodePath      = require 'path'
{Stream}      = require 'stream'
{MongoClient} = require 'mongodb'
{daisy}       = require 'sinkrow'


fetchDb = (mongo, callback) ->

    queue = []

    if dropFirst
      queue.push (next) -> collection.drop -> next()

    queue.push (next) ->
      csv()
        .from.path(path, { delimiter, encoding })
        .to.stream(stream)
