         self.textLabel.textColor = textColor
         self.textLabel.sizeToFit()
     }
-    
-    @objc public func setActive(active: Bool, animated: Bool) {
-        animateEnabled = animated
-        self.active = active
-        animateEnabled = true
-
-    }
-    
-}
-
-// MARK: - Touch Overrides
-extension NDFillButton {
-    override public func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) -> Bool {
-        pressed = true
-        return true
-    }
-    
-    override public func continueTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) -> Bool {
-        return true
-    }
-    
-    override public func endTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) {
-        pressed = false
-    }
-    
-    override public func cancelTrackingWithEvent(event: UIEvent?) {
-        pressed = false
-    }
-}
-
-// MARK: -
-extension NDFillButton {
-}
+}
+
+public extension NDFillButton {
+    @objc public override func sizeThatFits(size: CGSize) -> CGSize {
+        var labelSize = textLabel.sizeThatFits(size)
+        return CGSize(width: labelSize.width + 4, height: labelSize.height)
+    }
+}
        }
    }
    
    
    override public var frame: CGRect {
        didSet {
        }

    @objc public func toggle() {
        active = !active
    }

    @objc public func setActive(active: Bool, animated: Bool) {
        animateEnabled = animated
        self.active = active
        animateEnabled = true
    }
    
}

// MARK: - Touch Overrides
extension NDFillButton {
    override public func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) -> Bool {
        pressed = true
        return true
    }
    
    override public func continueTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) -> Bool {
        return true
    }
    
    override public func endTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) {
        pressed = false
    }
    
    override public func cancelTrackingWithEvent(event: UIEvent?) {
        pressed = false
    }
}

// MARK: - private functions
extension NDFillButton {
    private func animateFill(active: Bool, animated: Bool) {
        var scale = UIScreen.mainScreen().scale
        var R = sqrt(backgroundLayer.bounds.size.height * backgroundLayer.bounds.size.height + backgroundLayer.bounds.size.width * backgroundLayer.bounds.size.width) / 2
