adding async.js control flow