      reset sets the component to its initial state, where the fields are emnpty and we are in the "open" state
     */
     public func reset() {
+        showNextButton = false
         hideError()
         hideExpError()
         hideCvvError()

            cvvTextField.frame = CGRect(x: cvvFieldX, y: fieldY, width: actualCvvWidth, height: actualFieldHeight)
        }

        if self.ccnIsOpen && (textField.text != "" || designMode) {
            let x : CGFloat = self.frame.width - actualRightMargin - actualNextBtnWidth
            let y : CGFloat = (self.frame.height-actualNextBtnHeight) / 2.0
            nextButton.frame = CGRect(x: x, y: y, width: actualNextBtnWidth, height: actualNextBtnHeight)

                _ = self.validateExp(ignoreIfEmpty: true)
                _ = self.validateCvv(ignoreIfEmpty: true)
            }
            self.showNextButton = true
        })
    }

