unify async method