         didSet {
             if progress < 0.0 {
                 progress = 0.0
+            } else if progress > numberRotations {
+                progress = numberRotations
             }
             
             updateLayerProgress()

        }
    }


    /// The radius of the end cap shadow is controlled through
    /// this property.

    private func circleRadius() -> CGFloat {
        let rect = circleFrame()

        return min(rect.width, rect.height) / 2.0 - lineWidth - ringInset
    }

    
    /// A utility method that returns the center of the circle.  This assumes
    /// that the view is square.
    ///
    /// - returns: A CGPoint to use as the center point of the circle
    private func circleCenter() -> CGPoint {
        let radius = circleRadius() + lineWidth + ringInset
        return CGPointMake(radius, radius)
    }

