     }
 
     func reset() {
-        EventLog.storage.removeValue(forKey: name)
+        EventLog.memoryStorage.removeValue(forKey: name)
         do {
             try FileManager.default.removeItem(atPath: savePath)
         } catch { }
     }
 
-    var savePath: String {
+    fileprivate var savePath: String {
         return EventLog.savePath(forName: name)
     }
 
-    static func savePath(forName name: String) -> String {
+    static fileprivate func savePath(forName name: String) -> String {
         let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask,true).first!
         return "\(documentsPath)/EventLog-\(name).json"
     }

    var consoleLoggingEnabled = true
    var persisted = true

    static fileprivate var storage = [String: EventLog]()

    init (_ name: String) {
        if let stored = EventLog.storage[name] {
            self = stored
        } else if let saved = EventLog.loadFromDisk(named: name) {
            self = saved
        } else {
            self.name = name
            self.creationTime = Date()
            EventLog.storage[name] = self
        }
    }


    }

    func save() {
        saveToMemory()
        saveToDisk()
    }

    fileprivate func saveToMemory() {
        EventLog.memoryStorage[name] = self
    }

    fileprivate func saveToDisk() {
        if persisted {
            DispatchQueue.global(qos: .background).async(execute: { () -> Void in
                do {
