use then-promise's denodify