         var inValidatedControls = Set<UIView>()
         self.firstFailedControl = nil
         
-        for validator in validators {
+        for (index, validator) in validators.enumerated() {
             var isControlValid = false
             
             // all controls should be UIViews so there shouldn't be any problem

     It recommended to add validatots consequently respecting the order of a fields in the form.
     */
    public func add(validator: Validator) {
        validators.append(validator)
    }
    
    

                    // the control is not validated yet
                    // or it has been already validated and it passed all its previus validations
                    
                    // check conditions
                    if validatorConditions[index]() {
                        // get validation result
                        isControlValid = validator.validate()
                        
                        if isControlValid {
                            // control is valid
                            validator.control?.setValidation?(state: .valid)
                            validator.errorPlaceholder?.setErrorMessage(errorMessage: nil)
                        } else {
                            // control is not valid
                            validator.control?.setValidation?(state: .error)
                            validator.errorPlaceholder?.setErrorMessage(errorMessage: validator.errorMessage)
                            
                            // add the control to inValidatedControls set
                            inValidatedControls.insert(control)
                            
                            if self.firstFailedControl == nil {
                                self.firstFailedControl = control
                            }
                        }
                    } else {
                        // validator was executed
                        // control is valid
                        isControlValid = true
                        validator.control?.setValidation?(state: .valid)
                        validator.errorPlaceholder?.setErrorMessage(errorMessage: nil)
                    }
                }
            }
