added promisify and futzed with nextTick