   # @note Method generate add_x, where `x` it's a attribute from `@has_many` or `@has_one`
   constructor: (obj = {}) ->
     @logger = Sirius.Application.get_logger()
-    @_is_valid = false
     @callbacks = []
     # object, which contain all errors, which registers after validation
     @errors = {}
     @attributes = @normalize_attrs()
     name = Sirius.Utils.fn_name(@constructor)
     @errors = {}
+    @_is_valid_attr = {} # save pair attribute and validation state
 
     for attr in @attrs()
       # @attrs: [{key: value}]

    @_model_validators = @validators()
    for key, value of @_model_validators
      @errors[key] = {}
      for validator_name, validator of value
        if @_registered_validators_keys.indexOf(validator_name) == -1 && validator_name != 'validate_with'
          throw new Error("Unregistered validator: #{validator_name}")

  # Check, if model instance valid
  # @return [Boolean] true, when is valid, otherwise false
  is_valid: () ->
    Object.keys(@_is_valid_attr).filter((key) => !@_is_valid_attr[key]).length == 0

  # Call when you want validate model
  # @nodoc
