         self.overlay = overlay
     }
     
-    override public var isEnabled: Bool { didSet {
+    override open var isEnabled: Bool { didSet {
         self.nestedButtons.forEach { $0.isEnabled = isEnabled }
     }}
 
-    override public var isSelected: Bool { didSet {
+    override open var isSelected: Bool { didSet {
         self.nestedButtons.forEach { $0.isSelected = isSelected }
     }}
 
-    override public var isHighlighted: Bool { didSet {
+    override open var isHighlighted: Bool { didSet {
         guard shouldMakeTranclucentOnHiglhlight else {
             return
         }


import UIKit

public class ComplexButton: UIControl {
    
    required public init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

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