simplify caching logic by using download container