added CachedTask and cached download task