 
 public class DKImageExtensionContext {
     
-    public weak var imagePickerController: DKImagePickerController!
-    public var groupDetailVC: DKAssetGroupDetailVC?
+    public internal(set) weak var imagePickerController: DKImagePickerController!
+    public internal(set) var groupDetailVC: DKAssetGroupDetailVC?
     
 }
 
 ////////////////////////////////////////////////////////////////////////
 
 public enum DKImageExtensionType: Int {
-    case gallery, camera, inlineCamera, photoEditor
+    case
+    gallery,
+    camera,
+    inlineCamera,
+    photoEditor
 }
 
 public protocol DKImageExtensionProtocol {
     
+    /// Starts the extension.
     func perform(with extraInfo: [AnyHashable: Any])
     
+    /// Completes the extension.
     func finish()
 }
 
+/// This is the base class for all extensions.
 @objc
 open class DKImageBaseExtension: NSObject, DKImageExtensionProtocol {
     

        return context
    }
    
}

    }
    
    @objc internal class func registerAsDefaultExtension() {
        DKImageExtensionController.registerDefaultExtension(extensionClass: self, for: self.extensionType())
    }
    
}

/// The class handles the loading of extensions.
public class DKImageExtensionController {
    
    fileprivate static var defaultExtensions = [DKImageExtensionType : DKImageBaseExtension.Type]()
    fileprivate static var extensions = [DKImageExtensionType: DKImageBaseExtension.Type]()
