replace dependency q by async