         }
         
         if(!self.defaultTitle.isEqualToString("")) {
-            self.setTitle(self.defaultTitle, forState: UIControlState.Normal)
+            self.titleLabel.text = self.defaultTitle
         }
         
         self.activityViewArray.removeAllObjects();
         self.userInteractionEnabled = true;
     }
     
-    func degreesToRadians(degrees: CGFloat) -> CGFloat {
+    func setTitle(title: NSString) {
+        titleLabel.text = title
+    }
+    
+    private func degreesToRadians(degrees: CGFloat) -> CGFloat {
         
         let result = ((degrees) / 180.0 * CGFloat(M_PI))
         return result

    var defaultTitle: NSString = ""
    var activityTitle: NSString = ""
    
    init(frame: CGRect) {
        super.init(frame: frame)
        
        self.setUp()
    }
    
    init(coder aDecoder: NSCoder!)  {
        super.init(coder: aDecoder)
        
        self.setUp()
    }
    
    func setUp() {
        
        self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.width)
        self.layer.cornerRadius = self.frame.size.width / 2
        self.addTarget(self, action: Selector("onTouchUpInside"), forControlEvents: UIControlEvents.TouchUpInside)
        self.addTarget(self, action: Selector("onTouchDown"), forControlEvents: UIControlEvents.TouchDown)
    }
    
    func onTouchUpInside() {
        
        if(self.activityViewArray.count < 1) {
            self.startActivity()
        }
        
        self.userInteractionEnabled = false;
        self.titleLabel.alpha = 1.0
    }
    
    func onTouchDown() {
        
        self.titleLabel.alpha = 0.25;
    }
    
    func startActivity() {

            self.defaultTitle = self.titleLabel.text;
        }
        self.activityTitle = self.activityTitle.isEqualToString("") ? self.defaultTitle : self.activityTitle
        self.titleLabel.text = self.activityTitle
    }
    
    func stopActivity() {
