__validate__(field) {

    let data = this._data;

    if (!field) {

      let valid = true;
      this._validationsList.forEach(field => valid = (this.__validate__(field) && valid));
      return valid;

    } else if (!this._validations[field]) {

      return true;

    }

    this.clearError(field);
    let value = this._data[field];

    return this._validations[field].filter(validation => {
      let valid = validation.action.call(null, value);
      !valid && this.setError(field, validation.message);
      return valid;
    }).length === 0;

  }
Validates provided fieldList (or all fields if not provided)
@private
@param {optional Array} fieldList fields to validate