             }
             
             if asset.type == .photo {
-                fileName = fileName + String(self.imageExportPreset.rawValue)
+                fileName = fileName + String(self.configuration.imageExportPreset.rawValue)
             } else {
-                fileName = fileName + self.videoExportPreset + self.avOutputFileType.rawValue
+                fileName = fileName + self.configuration.videoExportPreset + self.configuration.avOutputFileType.rawValue
             }
         } else {
             fileName = "\(Date().timeIntervalSince1970)"
         }
         
-        if !FileManager.default.fileExists(atPath: self.exportDirectory.path) {
-            try? FileManager.default.createDirectory(at: self.exportDirectory, withIntermediateDirectories: true, attributes: nil)
-        }
-        
-        DKImageAssetDiskPurger.sharedInstance.addDirectory(self.exportDirectory)
-        
-        return self.exportDirectory.appendingPathComponent(fileName)
+        if !FileManager.default.fileExists(atPath: self.configuration.exportDirectory.path) {
+            try? FileManager.default.createDirectory(at: self.configuration.exportDirectory, withIntermediateDirectories: true, attributes: nil)
+        }
+        
+        DKImageAssetDiskPurger.sharedInstance.addDirectory(self.configuration.exportDirectory)
+        
+        return self.configuration.exportDirectory.appendingPathComponent(fileName)
     }
     
     static let ioQueue = DispatchQueue(label: "DKPhotoImagePreviewVC.ioQueue")

    #endif
    
    @objc public var exportDirectory = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("DKImageAssetExporter")
    
    private var exportQueue: OperationQueue = {
        let exportQueue = OperationQueue()

}

/*
 Configuration options for an DKImageAssetExporter.  When a exporter is created,
 a copy of the configuration object is made - you cannot modify the configuration
 of a exporter after it has been created.
 */
@objc
public class DKImageAssetExporterConfiguration: NSObject, NSCopying {
    
    @objc public var imageExportPreset = DKImageExportPresent.compatible
    
