fix async bug