Use BackendTask to refeactor several places