 
 // MARK: - Application lifetime
 
+private enum DBProxy {
+	static let `class`: AnyClass? = NSClassFromString("AppwiseCore.DB")
+	static let initialize = NSSelectorFromString("initialize")
+	static let reset = NSSelectorFromString("reset")
+	static let shared = NSSelectorFromString("shared")
+}
+
 public extension Config {
 	func setupApplication() {
 		// if needed, reset app and exit early. At the end of reset, setup is

	}
	
	private var db: NSObject? {
		guard let type = NSClassFromString("AppwiseCore.DB") as? NSObject.Type else { return nil }
		return type.perform(NSSelectorFromString("shared")).takeUnretainedValue() as? NSObject
	}
}

// MARK: - Other

public extension Config {
	var appName: String {
		return Bundle.main.infoDictionary?["CFBundleDisplayName"] as! String
	}

	var appVersion: Version {
		return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String
	}

	var appBuild: String {
		return Bundle.main.infoDictionary?["CFBundleVersion"] as! String
	}
}

		Settings.shared.reset()

		// delete core data store
		_ = db?.perform(DBProxy.reset)

		// user teardown
		teardown()
