     }
     
     override open func setImage(_ image: UIImage!, for state: UIControlState) {
-        self.store(image, onDic: self.imagens, state: state)
+        self.store(image, in: self.imagens, for: state)
         if super.image(for: state) != image {
             super.setImage(image, for: state)
         }

    // MARK: - Override Setters & Getters
   
    override open func setTitle(_ title: String!, for state: UIControlState) {
        self.store(title as AnyObject?, onDic: self.texts, state: state)
        if super.title(for: state) != title {
            super.setTitle(title, for: state)
        }

        return  UIImage(cgImage: outputImage.cgImage!, scale: scale, orientation: UIImageOrientation.up)
    }
    

    /** Store and recorver values */
    /** Value in Dictionary for ControlState */

    fileprivate func getValueFrom<T>(type: T.Type, on dic: NSMutableDictionary!, for state: UIControlState) -> T? {
        
        if let value =  dic.value(forKey: "\(state.rawValue)") as AnyObject? {
            return value as? T
        }
        
        return dic.value(forKey: "\(UIControlState.normal.rawValue)") as? T
    }
    
    fileprivate func store<T>(_ value: T?, in dic:NSMutableDictionary!, for state:UIControlState) {
        if let _value = value as AnyObject?  {
            dic.setValue(_value, forKey: "\(state.rawValue)")
        }
        else {
            dic.removeObject(forKey: "\(state.rawValue)")
        }
        self.configureControl(for: self.currentControlState())
    }
