using async.js instead of jQuery deferred