segregated async and synchronous versions of resolve()