         case fixed(UIColor)
         case changeWithDot
     }
+
+    public var dotColorStyle:    DotColorStyle    = .random(hue: .random, luminosity: .light)
+    public var pacmanColorStyle: PacmanColorStyle = .changeWithDot
     
-    init(frame: CGRect, pageCount: Int) {
+    public var pacmanDiameter:  CGFloat = 12
+    public var dotDiameter:     CGFloat = 5
+    public var dotInterval:     CGFloat = 0
+    
+    public var lastContentOffsetX: CGFloat = 0
+
+    fileprivate var progress:      CGFloat = 0
+    fileprivate var pacmanOriginX: CGFloat = 0
+    
+    fileprivate var dotLayers:   [CAShapeLayer] = []
+    fileprivate var pacmanLayer: PacmanLayer!
+    
+    fileprivate var pageCount: Int!
+    fileprivate var dotColors: [UIColor] = []
+    
+    public init(frame: CGRect, pageCount: Int) {
         super.init(frame: frame)
         
         self.pageCount = pageCount

        setSubLayers()
    }
    
    fileprivate func setSubLayers() {
        
        let dotTotalWidth = dotDiameter * CGFloat(pageCount) + dotInterval * CGFloat(pageCount - 1)
        let dotOriginY = (frame.height - dotDiameter) / 2
        let dotOriginX = (frame.width - dotTotalWidth) / 2
        pacmanOriginX = dotOriginX + dotDiameter / 2 - pacmanDiameter / 2

        var dotFrame = CGRect(x: dotOriginX, y: dotOriginY, width: dotDiameter, height: dotDiameter)
        
        dotLayers = (0..<pageCount).map { index in

        pacmanLayer.setNeedsDisplay()
    }
    
    required public init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
