fix async callback