static validates(field, message, fnAction) {

    if (!this.prototype.hasOwnProperty('_validations')) {
      this.prototype._validations = {};
      this.prototype._validationsList = [];
    };

    if (!this.prototype._validations[field]) {
      this.prototype._validationsList.push(field);
    }

    this.prototype._validations[field] = this.prototype._validations[field] || [];
    this.prototype._validations[field].push({message: message, action: fnAction});

  }
Create a validator. These run synchronously and check every time a field is set / cleared.
@param {string} field The field you'd like to validate
@param {string} message The error message shown if a validation fails.
@param {function({any} value)} fnAction the validation to run - first parameter is the value you're testing.