use async to load the data in in order, phew