use async call correctly