         
         // Images - Icons
         if (super.image(for: UIControlState.normal) != nil) {
-            self.store(super.image(for: UIControlState.normal), onDic: imagens, state: UIControlState.normal)
+            self.store(super.image(for: UIControlState.normal), in: imagens, for: .normal)
         }
         if (super.image(for: UIControlState.highlighted) != nil) {
-            self.store(super.image(for: UIControlState.highlighted), onDic: imagens, state: UIControlState.highlighted)
+            self.store(super.image(for: UIControlState.highlighted), in: imagens, for: .highlighted)
         }
         if (super.image(for: UIControlState.disabled) != nil) {
-            self.store(super.image(for: UIControlState.disabled), onDic: imagens, state: UIControlState.disabled)
+            self.store(super.image(for: UIControlState.disabled), in: imagens, for: .disabled)
         }
         if (super.image(for: UIControlState.selected) != nil) {
-            self.store(super.image(for: UIControlState.selected), onDic: imagens, state: UIControlState.selected)
+            self.store(super.image(for: UIControlState.selected), in: imagens, for: .selected)
         }
         
         // Title - Texts
         if let titleNormal = super.title(for: .normal) {
-            self.store(titleNormal as AnyObject?, onDic: texts, state: .normal)
+            self.store(titleNormal, in: texts, for: .normal)
         }
         if let titleHighlighted = super.title(for: .highlighted) {
-            self.store(titleHighlighted as AnyObject?, onDic: texts, state: .highlighted)
+            self.store(titleHighlighted, in: texts, for: .highlighted)
         }
         if let titleDisabled = super.title(for: .disabled) {
-            self.store(titleDisabled as AnyObject?, onDic: texts, state: .disabled)
+            self.store(titleDisabled, in: texts, for: .disabled)
         }
         if let titleSelected = super.title(for: .selected) {
-            self.store(titleSelected as AnyObject?, onDic: texts, state: .selected)
+            self.store(titleSelected, in: texts, for: .selected)
         }
         
     }

    
    fileprivate func removeObserver(forKeyPath keyPath: String!) {
        self.removeObserver(self, forKeyPath: keyPath)
    }
    
    
    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 configureControl(for state: UIControlState) {

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