     ///
     /// - warning: Multiple instances with the same path are *not* allowed as they
     /// would conflict with each other.
-    internal convenience init(name: String) throws {
+    public convenience init(name: String) throws {
         guard let root = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else {
             throw NSError(domain: NSCocoaErrorDomain, code: NSFileNoSuchFileError, userInfo: nil)
         }

///
/// - warning: It's possible to have more than one instance of `DataCache` with
/// the same `path` but it is not recommended.
internal final class DataCache: DataCaching {
    internal typealias Key = String

    /// The maximum number of items. `1000` by default.
    internal var countLimit: Int = 1000


    /// Stores data for the given key. The method returns instantly and the data
    /// is written asyncrhonously.
    public func storeData(_ data: Data, for key: Key) {
        self[key] = data
    }

    /// Removes data for the given key. The method returns instantly, the data
    /// is removed asyncrhonously.
    public func removeData(for key: Key) {
        self[key] = nil
    }

