lots of deferred cleanup, switched to bluebird for all promises/deferreds