 
     override func prepareForReuse() {
         super.prepareForReuse()
-
-        if let imageViews = self.imageViews {
-            for imageView in imageViews {
-                imageView.image = nil
-                imageView.animatedImage = nil
-                imageView.removeFromSuperview()
-            }
-        }
-
-        self.imageViews = nil
+        self.clearImages()
     }
 
     func updateImages() {
         if let images = self.images {
             if let contentWidth = self.contentWidth {
-                if let imageViews = self.imageViews {
-                    for imageView in imageViews {
-                        imageView.image = nil
-                        imageView.animatedImage = nil
-                        imageView.removeFromSuperview()
-                    }
-                }
+                self.clearImages()
 
                 let imageManager = SDWebImageManager.sharedManager()
                 let imageDownloader = SDWebImageDownloader.sharedDownloader()
                 let widthRatio: Float = 1.0 / Float(images.count)
                 var imageViews = Array<FLAnimatedImageView>()
+                var downloadOperations = Array<SDWebImageOperation>()
                 var lastImageView: UIImageView?
                 for image in images {
                     let imageView = FLAnimatedImageView()

                }
                
                self.imageViews = imageViews
            }
        }
    }

    func imageAtPoint(point: CGPoint) -> UIImage? {


    var imageViews: Array<FLAnimatedImageView>?
    var shareHandler: ((UIImage) -> ())?
    var imageDownloadOperations: Array<SDWebImageOperation>?
    
    var contentWidth: CGFloat? {
        didSet {
