merged three async tasks into one because they were basically the same...