convenient wrapper for lazy promises