 
 import UIKit
 
-@objc protocol MTSlideToOpenDelegate {
+@objc public protocol MTSlideToOpenDelegate {
     func mtSlideToOpenDelegateDidFinish(_ sender: MTSlideToOpenView)
 }
 
-class MTSlideToOpenView: UIView {
+public class MTSlideToOpenView: UIView {
     // MARK: All Views
-    let textLabel: UILabel = {
+    public let textLabel: UILabel = {
         let label = UILabel.init()
         return label
     }()
-    let thumnailImageView: UIImageView = {
-        let view = UIImageView()
+    public let thumnailImageView: UIImageView = {
+        let view = MTRoundImageView()
         view.isUserInteractionEnabled = true        
         view.contentMode = .center
         return view
     }()
-    let sliderHolderView: UIView = {
+    public let sliderHolderView: UIView = {
         let view = UIView()
         return view
     }()
-    let draggedView: UIView = {
+    public let draggedView: UIView = {
         let view = UIView()
         return view
     }()
-    let view: UIView = {
+    public let view: UIView = {
         let view = UIView()
         return view
     }()
     // MARK: Public properties
-    weak var delegate: MTSlideToOpenDelegate?
-    var animationVelocity: Double = 0.2
-    var sliderViewTopDistance: CGFloat = 8.0 {
+    public weak var delegate: MTSlideToOpenDelegate?
+    public var animationVelocity: Double = 0.2
+    public var sliderViewTopDistance: CGFloat = 8.0 {
         didSet {
             topSliderConstraint?.constant = sliderViewTopDistance
             layoutIfNeeded()
         }
     }
-    var thumbnailViewLeadingDistance: CGFloat = 0.0 {
+    public var thumbnailViewLeadingDistance: CGFloat = 0.0 {
         didSet {
             updateThumbnailViewLeadingPosition(thumbnailViewLeadingDistance)
             layoutIfNeeded()
         }
     }
-    var textLabelLeadingDistance: CGFloat = 0 {
+    public var textLabelLeadingDistance: CGFloat = 0 {
         didSet {
             leadingTextLabelConstraint?.constant = textLabelLeadingDistance
             layoutIfNeeded()
         }
     }
-    var isEnabled:Bool = true {
+    public var isEnabled:Bool = true {
         didSet {
             if isEnabled {
                 thumnailImageView.backgroundColor = defaultThumbnailColor

        xEndingPoint = self.view.frame.maxX - buttonHeight
    }
    
    override internal func layoutSubviews() {
        super.layoutSubviews()
        xEndingPoint = self.view.frame.maxX
        if buttonHeight == 0 {

            break
        }
    }
    // Others
    public func resetStateWithAnimation(_ animated: Bool) {
        let action = {
            self.leadingThumbnailViewConstraint?.constant = 0
            self.textLabel.alpha = 1
