rewrite of post to use async.waterfall