switch to asynctaskloader
refactor