     
     //MARK: - TOGGLING AND VERIFICATION
     
-    open func enableFeature(_ featureName: String) {
+    @objc open func enableFeature(_ featureName: String) {
         featureSet.insert(featureName)
         
         guard let executions = featureExecutionMap[featureName] else {

        }
    }
    
    open func ifFeatureEnabled(_ featureName: String, run: () -> Void) {
        guard isFeatureEnabled(featureName) else {
            return
        }

    fileprivate var featureSet: Set<String>
    fileprivate var featureExecutionMap: [String: [(()->())]] = [:]
    
    @objc public override init() {
        featureSet = Set<String>()
        super.init()
    }
    
    @objc public init(featureSet: Set<String>) {
        self.featureSet = featureSet
        super.init()
    }
    
    @objc open func whenEnabled(_ featureName: String, run: @escaping () -> Void) {
        if isFeatureEnabled(featureName) {
            //Run right away if feature is enabled
            run()
