support async to improve performance of loading