promise-like API style:star2::star2::star2: