     @nonobjc private var readAccessURL: URL? {
         get { return objc_getAssociatedObject(self, &readAccessURLKey) as? URL }
         set {
-            let url = readAccessURL.flatMap { $0.absoluteString.isEmpty ? nil : $0 }
+            let url = newValue.flatMap { $0.absoluteString.isEmpty ? nil : $0 }
             objc_setAssociatedObject(self, &readAccessURLKey, url, .OBJC_ASSOCIATION_RETAIN)
         }
     }

    @nonobjc private var baseURL: URL? {
        get { return objc_getAssociatedObject(self, &baseURLKey) as? URL }
        set {
            let url = baseURL.flatMap { $0.absoluteString.isEmpty ? nil : $0 }
            objc_setAssociatedObject(self, &baseURLKey, url, .OBJC_ASSOCIATION_RETAIN)
        }
    }

    @nonobjc private var baseURL: URL? {
        get { return objc_getAssociatedObject(self, &baseURLKey) as? URL }
        set {
            let url = newValue.flatMap { $0.absoluteString.isEmpty ? nil : $0 }
            objc_setAssociatedObject(self, &baseURLKey, url, .OBJC_ASSOCIATION_RETAIN)
        }
    }
