     @objc optional func textForHintView(_ hintView: UIView, at point: CGPoint, for scrollBar: ScrollBar) -> String
 }
 
+struct HintViewAttributes {
+    var size: CGSize
+    var cornerRadius: CGFloat
+    var backgroundColor: UIColor
+    var textColor: UIColor
+    var font: UIFont
+    
+    init(size: CGSize = CGSize(width: 76, height: 32),
+         cornerRadius: CGFloat = 5,
+         backgroundColor: UIColor = UIColor.black.withAlphaComponent(0.3),
+         textColor: UIColor = .black,
+         font: UIFont = .systemFont(ofSize: 15)) {
+        self.size = size
+        self.cornerRadius = cornerRadius
+        self.backgroundColor = backgroundColor
+        self.textColor = textColor
+        self.font = font
+    }
+}
+
+struct ScrollBarAttributes {
+    
+    var minStartSpeedInPoints: CGFloat
+    var rightOffset: CGFloat
+    var fadeOutAnimationDuration: TimeInterval
+    var fadeOutAnimationDelay: TimeInterval
+    
+    init(minStartSpeedInPoints: CGFloat = 20.0,
+         rightOffset: CGFloat = 30.0,
+         fadeOutAnimationDuration: TimeInterval = 0.3,
+         fadeOutAnimationDelay: TimeInterval = 0.5) {
+        self.minStartSpeedInPoints = minStartSpeedInPoints
+        self.rightOffset = rightOffset
+        self.fadeOutAnimationDuration = fadeOutAnimationDuration
+        self.fadeOutAnimationDelay = fadeOutAnimationDelay
+    }
+}
 
 class ScrollBar: NSObject {
-    
-    private struct Constants {
-        static let minStartSpeedInPoints: CGFloat = 20.0
-        static let rightOffset: CGFloat = 30.0
-        static let fadeOutAnimationDuration = 0.3
-        static let fadeOutAnimationDelay = 0.5
-        static let defaultScrollBarViewSize = CGSize(width: 48, height: 48)
-        static let hintViewSize = CGSize(width: 76, height: 32)
-        static let hintViewCornerRadius: CGFloat = 5
-        static let hintViewBackgroundColor = UIColor.black.withAlphaComponent(0.3)
-    }
     
     // MARK: - Public properties
     

        let y = scrollBarView.center.y
        let point = CGPoint(x: x, y: y)
        _hintView.text = dataSource?.textForHintView?(_hintView, at: point, for: self)
        var size = _hintView.sizeThatFits(Constants.hintViewSize)
        size.width = max(Constants.hintViewSize.width, size.width)
        size.height = max(Constants.hintViewSize.height, size.height)
        _hintView.frame.size = size
        _hintView.center = point
    }

    }
    
    private func createDefaultScrollBarHintView() -> UILabel {
        let label = UILabel(frame: .zero)
        label.layer.masksToBounds = true
        label.textAlignment = .center
        return label
