 		return documentsURL
 	}
 
+	/// Returns String representing only alphanumerics from app's name
 	var cleanAppName: String {
 		guard let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String else {
 			let log = String(format: "E | %@:%@/%@ Unable to fetch CFBundleName from main bundle",

		return sd
	}

	var defaultStoreURL: URL {
		guard let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else {
			let log = String(format: "E | %@:%@/%@ Could not fetch Documents directory",


fileprivate typealias Contexts = RTCoreDataStack
public extension Contexts {
	/// Importer MOC is your best path to import large amounts of data in the background. Its `mergePolicy` is set to favor objects in memory versus those in the store, thus in case of conflicts newly imported data will trump whatever is on disk.
	///
	/// - returns: Newly created MOC with concurrency=NSPrivateQueueConcurrencyType and mergePolicy=NSMergeByPropertyObjectTrumpMergePolicy
	func importerContext() -> NSManagedObjectContext {
		let moc = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
		moc.persistentStoreCoordinator = writerCoordinator
