 
 	func save() {
 		let opmlDocumentString = opmlDocument()
-		do {
-			let url = URL(fileURLWithPath: filename)
-			try opmlDocumentString.write(to: url, atomically: true, encoding: .utf8)
-		} catch let error as NSError {
-			os_log(.error, log: log, "Save to disk failed: %@.", error.localizedDescription)
+		
+		let errorPointer: NSErrorPointer = nil
+		let fileCoordinator = NSFileCoordinator(filePresenter: self)
+		
+		fileCoordinator.coordinate(writingItemAt: fileURL, options: .forReplacing, error: errorPointer, byAccessor: { writeURL in
+			do {
+				try opmlDocumentString.write(to: writeURL, atomically: true, encoding: .utf8)
+			} catch let error as NSError {
+				os_log(.error, log: log, "OPML save to disk failed: %@.", error.localizedDescription)
+			}
+		})
+		
+		if let error = errorPointer?.pointee {
+			os_log(.error, log: log, "OPML save to disk coordination failed: %@.", error.localizedDescription)
 		}
 	}
 	

	}
	
	private var isLoading = false
	private let filename: String
	private let account: Account
	private let operationQueue: OperationQueue
	
	var presentedItemURL: URL? {
		return URL(fileURLWithPath: filename)
	}
	
	var presentedItemOperationQueue: OperationQueue {

	}
	
	init(filename: String, account: Account) {
		self.fileURL = URL(fileURLWithPath: filename)
		self.account = account
		operationQueue = OperationQueue()
		operationQueue.maxConcurrentOperationCount = 1
