add then-promise
fix lifter
use then-promise's denodify
just reuse the code from the native one
don't use push, like ever
and the array prealocation
allocate correct size
and self for native promises