I'm not sure to understand why we need an async.waterfall() here.