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

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


    }
    
    @objc open func disableFeature(_ featureName: String) {
        featureSet.remove(featureName)
    }

    @objc open func isFeatureEnabled(_ featureName: String) -> Bool {
        return featureSet.contains(featureName)    
    }
}
