 /**
  Internal load exstension
  */
+
+private enum Error: ErrorType {
+    case FailedInitialization(message: String)
+}
 
 private func createInstance(conformingProtocol: Protocol, defaults: [String: AnyObject], bundleKey: String) -> NSObject? {
     

public let defaultBundleKey = "TCCConfiguration"
public let defaultDefaults  = [String: AnyObject]()

internal enum Error: ErrorType {
    case FailedInitialization(message: String)
}

/**
    Main Configuration implementation
*/

    public final class func instance(defaults: [String: AnyObject], bundleKey: String) -> P? {
        
        // Lookup the protocol in the Objective-C runtime to get the Protocol object pointer

        guard let conformingProtocol: Protocol = objc_getProtocol(String(reflecting: P.self)) else {
            fatalError ("Could not create instance for protoocol \(P.self)")
        }
