         return subLayer
     }
     
+    private func removeImageLayer(image: UIImage?) {
+        DispatchQueue.main.async {
+            // avoid redundant layer when focus on faces for the image of cell specified in UITableView
+            self.imageLayer().removeFromSuperlayer()
+            self.image = image
+        }
+    }
+    
     private func sublayer() -> CALayer? {
         if let sublayers = layer.sublayers {
             for layer in sublayers {

            offset.y = -offset.y
        }
        
        DispatchQueue.main.sync {
            let layer = self.imageLayer()
            layer.frame = CGRect(x: offset.x, y: offset.y, width: finalSize.width, height: finalSize.height)
            layer.contents = cgImage
        }
    }
    

    
    public func set(image: UIImage?, focusOnFaces: Bool) {
        guard focusOnFaces == true else {
            self.removeImageLayer(image: image)
            return
        }
        setImageAndFocusOnFaces(image: image)
