     func loadImage(_ fileName: String, priority: Float?, userData: Any?, success: @escaping CNLModelNetworkDownloadImageSuccess, fail: @escaping CNLModelNetworkDownloadFileFail)
 }
 
-extension CNLModelImageLoadable {
+public extension CNLModelImageLoadable {
     
     public func loadImage(_ fileName: String, priority: Float?, userData: Any?, success: @escaping CNLModelNetworkDownloadImageSuccess, fail: @escaping CNLModelNetworkDownloadFileFail) {
         let start = Date()

    func cancelLoading()
}

extension CNLModelDataLoadable {
    
    public func loadData(_ fileName: String, priority: Float?, userData: Any?, success: @escaping CNLModelNetworkDownloadFileSuccess, fail: @escaping CNLModelNetworkDownloadFileFail) {
        let cancelTask = CNLModelNetworkProvider?.downloadFileFromURL(

    func loadImage(_ fileName: String, priority: Float?, userData: Any?, size: CGSize, scale: CGFloat?, success: CNLModelNetworkDownloadImageSuccess, fail: CNLModelNetworkDownloadFileFail)
}

public extension CNLModelResizableImageLoadable {
    
    public func loadImage(_ fileName: String, priority: Float?, userData: Any?, size: CGSize, scale: CGFloat?, success: @escaping CNLModelNetworkDownloadImageSuccess, fail: @escaping CNLModelNetworkDownloadFileFail) {
        let scale = scale ?? 1.0 // imageScale()
