             let circularPath = UIBezierPath.circlePathWithCenter(CGPoint(x: centerX, y: centerY), diameter: self.diameter, borderWidth: self.circleBorderWidth)
             
             let isActive = self.dataSource?.cricularStatesView(self, isStateActiveAtIndex: index)
+            var isNextStateActive = false
             if isActive == true {
                 self.circleActiveColor.setFill()
-                
+            
                 if index < statesCount.predecessor() {
-                    let isNextStateActive = self.dataSource?.cricularStatesView(self, isStateActiveAtIndex: index.successor())
+                    isNextStateActive = self.dataSource?.cricularStatesView(self, isStateActiveAtIndex: index.successor()) ?? false
                     if isNextStateActive == false {
                         self.frameForRippleView = circularPath.bounds
                         self.updateIndicatorViews()

                linePath.addLineToPoint(CGPoint(x: centerX, y: centerY+self.radius+self.seperatorLength))
                linePath.lineWidth = self.seperatorWidth
                
                self.seperatorColor.setStroke()
                linePath.stroke()
            }
        }

    }
    
    private func commonInit() {
        
    }
    
    // MARK: - Public API
