docs: function initFields () {
      // skip if no model
      if (!this.model) {
          return
      }
      // if not fields list was passed in args then add all model properties
      if (!this.fields.length && this.model.schemaData) {
          // get data properites from schema
          var properties = this.model.schemaData.properties
          // add each property from data schema as form field
          _.each(properties, (schema, property) => {
              this.fields.push(property)
          })
      }
      // iterate over fields building spec based on args and schema
      this.fields = _.map(this.fields, field => {
          // field group
          if (Array.isArray(field)) {
              // build spec for each field in group
              field = _.map(field, field => initField(this, field))
              // set correct width units for fields
              setUnits(this, field)
          }
          // individual field
          else {
              field = initField(this, field)
          }
          // return field specification
          return field
      })
  }