         self.overlay = overlay
     }
     
-    override var isEnabled: Bool { didSet {
+    override public var isEnabled: Bool { didSet {
         self.nestedButtons.forEach { $0.isEnabled = isEnabled }
     }}
 
-    override var isSelected: Bool { didSet {
+    override public var isSelected: Bool { didSet {
         self.nestedButtons.forEach { $0.isSelected = isSelected }
     }}
 
-    override var isHighlighted: Bool { didSet {
+    override public var isHighlighted: Bool { didSet {
+        guard shouldMakeTranclucentOnHiglhlight else {
+            return
+        }
         let count = subviews.count - 1 > 0 ? subviews.count - 1 : 0
         let alpha: CGFloat = isHighlighted ? 0.3 : 1
         for subview in subviews[0..<count] {

        }
    }}
    
    override func layoutIfNeeded() {
        super.layoutIfNeeded()
        self.bringSubview(toFront: overlay)
    }
    
    override func addSubview(_ view: UIView) {
        if let overlay = overlay {
            insertSubview(view, belowSubview: overlay)
        } else {

        }
    }
    
    public var shouldMakeTranclucentOnHiglhlight = true
    
    lazy var nestedButtons: [UIButton] = {
        var buttons = [UIButton]()
        let count = self.subviews.count - 1
        guard count > 0 else {
            return []
        }
        let sbviews = Array(self.subviews[0..<1])
        self.recursive(subviews: sbviews) {
            if let button = $0 as? UIButton {
