                 })
                 
             default:
-                loadWithSpinner(imageURL: thumbURL, completion: { (code, error) in
+                loadWithSpinner(imageURL: thumbURL, completion: { [unowned self] (code, error) in
                     if code != .canceled {
-                        self.loadWithSpinner(imageURL: largeURL, completion: { (code, error) in
+                        self.loadWithSpinner(imageURL: largeURL, completion: { [unowned self] (code, error) in
                             self.forceStopLoadingState()
                             completion?(code, error)
                         })

        image = placeholder
        
        if !loadingEnabled {
            loadImage(fromURL: thumbURL, completion: { (code, error) in
                if code != .canceled {
                    self.loadImage(fromURL: largeURL, completion: { (code, error) in
                        completion?(code, error)

            
            switch loadingType {
            case .progress:
                loadWithProgress(imageURL: imageURL) { [unowned self] (code, error) in
                    self.forceStopLoadingState()
                    completion?(code, error)
                }
                
            default:
                loadWithSpinner(imageURL: imageURL) { [unowned self] (code, error) in
                    self.forceStopLoadingState()
                    completion?(code, error)
                }
