Replace async.waterfall with async.parallel in user.js and add in yet more error handling