     public func perform(extensionType: DKImageExtensionType, with extraInfo: [AnyHashable : Any]) {
         DKImageExtensionController.checkDefaultExtensions
         
-        if let extensionClass = (DKImageExtensionController.extensions[extensionType] ?? DKImageExtensionController.defaultExtensions[extensionType]) {
+        if let extensionClass = self.fetchExtensionClass(extensionType) {
             var e = self.cache[extensionType]
             if e == nil {
                 e = extensionClass.init(context: self.createContext())

        return context
    }
    
    internal class func registerDefaultExtension(extensionClass: DKImageBaseExtension.Type, for type: DKImageExtensionType) {
        DKImageExtensionController.defaultExtensions[type] = extensionClass
    }

    }
    
    public func isExtensionTypeAvailable(_ extensionType: DKImageExtensionType) -> Bool {
        return self.fetchExtensionClass(extensionType) != nil
    }
    
    /// Registers an extension for the specified type.
