public function validate(array $validationSubject) {
        
        $isValid        = true;
        $errorMessages  = [];

        foreach($this->rules() as $rule) {
            
            $isRuleValid = $rule->isValid($validationSubject);
            
            if( ! $isRuleValid ) {
                $isValid = false;
                $errorMessages[] = $rule->getErrorMessage();
                
                if($this->stopInFirstError) {
                    break;
                }
            }
        }

      return $this->createResult($isValid, $errorMessages);
    }