      *  to the correct type.
      */
     public class func defaults () -> [String: AnyObject] {
-        return [String: AnyObject]()
+        return defaultDefaults
     }
     
     /**

     */
    @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())
    }

    /**

 */
import TraceLog

// Default values for override methods
public let defaultBundleKey = "TCCConfiguration"
public let defaultDefaults  = [String: AnyObject]()

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

/**
    Main Configuration implementation
*/
public class Configuration<P: NSObjectProtocol> {
    
    /**
     *  This method should return a dictionary keyed by property name
     *  with the values for defaults in the instance. Value types must
