new structure for async.js