   /// Circle view with icon for sliding images. You can override it with your custom view.
   open var sliderCircle: UIView
 
+  /// Enum that describes which direction the slider will slide from.
+  open var slideDirection: SlideDirection
+    
   /// Generic initializer with views
   ///
   /// - Parameters:
   ///   - frame: Frame size
   ///   - firstView: First view - should have size equal to frame and second view
   ///   - secondView: Second view - should have size equal to frame and second view
-  public init(frame: CGRect, firstView: UIView, secondView: UIView) {
+  public init(frame: CGRect, firstView: UIView, secondView: UIView, sliderImage: UIImage? = nil, slideDirection: SlideDirection? = nil) {
     self.firstView = firstView
     self.secondView = secondView
-    sliderCircle = SlidableImage.setupSliderCircle()
+    self.sliderCircle = SlidableImage.setupSliderCircle(sliderImage: sliderImage)
+    self.slideDirection = slideDirection ?? .right
     super.init(frame: frame)
 
     initializeViews()

  ///
  /// - Parameter maskLocation: Position of slider
  open func updateMask(location maskLocation: CGFloat) {
    let maskRectPath = UIBezierPath(rect: CGRect(x: bounds.minX,
                                                 y: bounds.minY,
                                                 width: maskLocation,
                                                 height: bounds.height))
    let mask = CAShapeLayer()
    mask.path = maskRectPath.cgPath
    secondView.layer.mask = mask

    sliderCircle.center.x = maskLocation
  }


  /// Private wrapper for setup circle slider view
  ///
  /// - Returns: Slider circle
  private class func setupSliderCircle(sliderImage: UIImage? = nil) -> UIView {
    // Workaround - without this view, gesture recognizer doesn't work
    let circle = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
    circle.layer.cornerRadius = circle.bounds.width / 2
    
    let imageView = UIImageView(image: sliderImage)
    imageView.contentMode = .scaleAspectFill
    circle.addSubview(imageView)
    imageView.center = circle.center
        
    return circle
  }

