 
 class TextFieldCounter: UITextField, UITextFieldDelegate {
 
-    lazy var counterLabel: UILabel = UILabel()
+    lazy private var counterLabel: UILabel = UILabel()
     
     // MARK: IBInspectable: Limits and behaviors
     
     @IBInspectable public dynamic var animate : Bool = true
     @IBInspectable public var maxLength : Int = TextFieldCounter.defaultLength {
         didSet {
-            if (!self.isValidMaxLength(max: self.maxLength)) {
-                self.maxLength = TextFieldCounter.defaultLength
+            if (!isValidMaxLength(max: maxLength)) {
+                maxLength = TextFieldCounter.defaultLength
             }
         }
     }

            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)

        
        super.init(frame: frame)
        
        if !isValidMaxLength(max: limit) {
            maxLength = TextFieldCounter.defaultLength
        } else {
            maxLength = limit
        }
        
        animate = shouldAnimate
        counterColor = colorOfCounterLabel
        limitColor = colorOfLimitLabel
        
        super.delegate = self
        counterLabel = setupCounterLabel()
    }
    
    // MARK: Private Methods
