merged with changes in SuperLazyPromise branch