 
 // MARK: Ring Progress Layer
 
-class MKRingProgressLayer: CALayer {
-    
-    var startColor = UIColor.redColor().CGColor {
+public class MKRingProgressLayer: CALayer {
+    
+    public var startColor = UIColor.redColor().CGColor {
         didSet {
             setNeedsRedrawContents()
         }
     }
     
-    var endColor = UIColor.blueColor().CGColor {
+    public var endColor = UIColor.blueColor().CGColor {
         didSet {
             setNeedsRedrawContents()
         }
     }
     
-    var backgroundRingColor: CGColorRef? = nil {
+    public var backgroundRingColor: CGColorRef? = nil {
         didSet {
             setNeedsDisplay()
         }
     }
     
-    var ringWidth: CGFloat = 20 {
+    public var ringWidth: CGFloat = 20 {
         didSet {
             setNeedsRedrawContents()
         }
     }
     
-    var endShadowOpacity: CGFloat = 1.0 {
+    public var endShadowOpacity: CGFloat = 1.0 {
         didSet {
             endShadowOpacity = min(max(endShadowOpacity, 0), 1)
             setNeedsDisplay()

    /* The color of backdrop circle, visible at progress values between 0.0 and 1.0.
    * If not specified, `startColor` with 15% opacity will be used. */
    
    @IBInspectable var backgroundRingColor: UIColor? {
        get {
            if let color = (layer as! MKRingProgressLayer).backgroundRingColor {
                return UIColor(CGColor: color)

// MARK: - Ring Progress View

@IBDesignable
public class MKRingProgressView: UIView {
    
    /* The ring color for lowest progress values (closer to 0.0). */
    
    @IBInspectable public var startColor: UIColor {
        get {
            return UIColor(CGColor: (layer as! MKRingProgressLayer).startColor)
        }
