     
     internal var requestReceipt: RequestReceipt?
     
+    
     // MARK: - Public property
     
-    open var contentViewMode: ContentMode = .aspectFill {
-        didSet { setNeedsDisplay() }
-    }
-    
-    open var contentViewFill: ContentFill = .Center {
-        didSet { setNeedsDisplay() }
-    }
-    
-    open var loadingType: NFImageViewLoadingType = .default {
+    public var contentViewMode: ContentMode = .aspectFill {
+        didSet { setNeedsDisplay() }
+    }
+    
+    public var contentViewFill: ContentFill = .Center {
+        didSet { setNeedsDisplay() }
+    }
+    
+    public var loadingType: NFImageViewLoadingType = .default {
         didSet { setNeedsDisplay() }
     }
     
     // MARK: - IBInspectables
     
-    @IBInspectable open var loadingEnabled: Bool = true
-    
-    @IBInspectable open var highlighted: Bool = false {
+    @IBInspectable public var loadingEnabled: Bool = true
+    
+    @IBInspectable public var highlighted: Bool = false {
         didSet { setNeedsDisplay() }
     }
     
     // default is nil
-    @IBInspectable open var image: UIImage? {
+    @IBInspectable public var image: UIImage? {
         didSet { setNeedsDisplay() }
     }
     
     // default is nil
-    @IBInspectable open var highlightedImage: UIImage? {
+    @IBInspectable public var highlightedImage: UIImage? {
         didSet { setNeedsDisplay() }
     }
     

        context.restoreGState()
    }
    
    open override func tintColorDidChange() {
        setNeedsDisplay()
    }
    
    // MARK: - Loaders Setup
    
    fileprivate func prepareLoadingIndicator() -> UIActivityIndicatorView {

        super.awakeFromNib()
        
        backgroundColor = .clear
    }
    
    open override func layoutSubviews() {
        super.layoutSubviews()
        
        setNeedsDisplay()
    }
    
    // MARK: - Drawing
    
    public override func draw(_ rect: CGRect) {
        
        guard let context = UIGraphicsGetCurrentContext() else { return }
        
