      */
     @nonobjc
     @warn_unused_result
-    public final class func instance<P: protocol<>> (objcProtocol: Protocol, defaults: [String: AnyObject]) -> P? {
-        return instance(objcProtocol, defaults: defaults, bundleKey: self.bundleKey())
+    public final class func instance(defaults: [String: AnyObject]) -> P? {
+        return instance(defaults, bundleKey: self.bundleKey())
     }
 
     /**

 */
import TraceLog

internal let ErrorDomain      = "FSErrorDomain"
internal let DefaultBundleKey = "TCCConfiguration"

internal enum ErrorDomainCode: Int {
    case InitializationErrorCode     = 100
    case MissingConfigurationKey     = 101
    case InvalidConfigurationKeyType = 102
}

@objc(CCConfiguration)
public class Configuration : NSObject {

    /**
     *  This method should return a dictionary keyed by property name
     *  with the values for defaults in the instance. Value types must

     * @default TCCConfiguration
     */
    public class func bundleKey () -> String {
        return defaultBundleKey
    }
    
    /**
