             processPath.stroke()
             processPath.removeAllPoints()
             
-            runningStartAngle = endAngle - 0.01
+            runningStartAngle = endAngle - stepSize / 10
+            
         }
     }
     

        let processPath = UIBezierPath()
        processPath.lineWidth = lineWidth
        
        for step in stride(from: CGFloat(0), through: 1.0, by: stepSize) {
            
            let endAngle = (step * fraction) + startAngle
            
            let newRed   = startColorComponents.red   + (finalColorComponents.red   - startColorComponents.red)   * step
            let newGreen = startColorComponents.green + (finalColorComponents.green - startColorComponents.green) * step
            let newBlue  = startColorComponents.blue  + (finalColorComponents.blue  - startColorComponents.blue)  * step
            let progressColor = UIColor(red:newRed, green:newGreen, blue:newBlue, alpha:1.0)
            
            progressColor.set()

        let zeroAngle = CGFloat(-90.0).degreesToRadians
        let startAngle    = zeroAngle + (CGFloat(360).degreesToRadians * startPosition)
        let finalEndAngle = zeroAngle + (CGFloat(360).degreesToRadians * (startPosition + max(relativeSize, 0)))
        let totalGradientSize = abs(finalEndAngle - startAngle)
        var runningStartAngle = startAngle
        
        let startColorComponents = fromColor.components
