     func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
         
         var shouldChange = false
-        let textFieldCharactersCount = self.getTextFieldCharactersCount(textField: textField, string: string)
+        let textFieldCharactersCount = getTextFieldCharactersCount(textField: textField, string: string)
         
         if string.isEmpty {
             shouldChange = true
         } else {
-            shouldChange = textFieldCharactersCount <= self.maxLength
+            shouldChange = textFieldCharactersCount <= maxLength
         }
         
         updateCounterLabel(count: textFieldCharactersCount)

            animationType = .basic
        }
        
        self.animateTo(type: animationType)
    }
    
    private func animateTo(type: animationType) {
        
        switch type {
        case .basic:
            self.animateCounterLabelColor(color: counterColor)
            break
        case .didReachLimit:
            self.animateCounterLabelColor(color: limitColor)
            
            if (animate) {
                counterLabel.shakeTo(transform: CGAffineTransform(translationX: 5, y: 0), duration: 0.3)

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        super.delegate = self
        counterLabel = setupCounterLabel()
    }
    
    override func draw(_ rect: CGRect) {
        super.draw(rect)
        rightView = counterLabel
        rightViewMode = .whileEditing
    }
    
    // MARK: Public Methods
