use promise to handle stubleupon deferred instead of pool of futures