 
 	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)
 		}
 	}
 	

	}

	func parsedOPMLItems() -> [RSOPMLItem]? {
		
		let opmlFileURL = URL(fileURLWithPath: filename)
		var fileData: Data?
		do {
			fileData = try Data(contentsOf: opmlFileURL)
		} catch {
			// Commented out because it’s not an error on first run.
			// TODO: make it so we know if it’s first run or not.
			//NSApplication.shared.presentError(error)
			return nil
		}
		guard let opmlData = fileData else {
			return nil
		}

		let parserData = ParserData(url: opmlFileURL.absoluteString, data: opmlData)
		var opmlDocument: RSOPMLDocument?

		do {

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