Shifted responsibility, less boilerplate code, same URLs not downloaded twice