 
     // MARK: init
 
+    // this is the initial log manager
+    private init(initial : Bool) {
+        registerLogger("", level: .OFF, logs: [])
+    }
+
+    /// Create a new `LogManager` which will overwrite the singleton!
     init() {
         LogManager.instance = self // simply override...good enough
     }

    }
}

// Level

public func ==(lhs: LogManager.Level, rhs: LogManager.Level) -> Bool {
    return lhs.rawValue == rhs.rawValue

    /// - Parameter forClass: the specific class
    /// - Returns a Logger
    public static func getLogger(forClass clazz : AnyClass) -> Logger {
        return instance.getLogger(forClass: clazz)
    }

    /// Return a `Logger` given a name. This will either return a direct matching logger or the next parent logger by stripping the last legs of the name
    /// - Parameter forName: the logger name
    /// - Returns a Logger
    public static func getLogger(forName name : String) -> Logger {
        return instance.getLogger(forName: name)
    }

    /// Return the singleton
    /// Returns: the singleton
    public static func getSingleton() -> LogManager {
        return instance
    }

    // MARK: instance data
