some progress about loading async, but not exactly what I want