docs: function renderFields(req, res, record, model, section, callback) {
  
      // filter out invalid fields from section
      var fields = section.fields.filter(function (field) {
  
          if (typeof field.value === 'function') {
              return field.label;
          }
  
          // Dynamically build the object.
          if (typeof field !== 'object') {
              return {
                  label: model.linz.formtools.labels[field],
                  value: record[field],
              };
          }
  
          return field.fieldName;
  
      });
  
      async.mapSeries(fields, function (field, cb) {
  
          if (typeof field.value === 'function') {
  
              return field.value(req, res, record, model, (fieldValueErr, result) => {
  
                  if (fieldValueErr) {
                      return cb(fieldValueErr);
                  }
  
                  return cb(null, {
                      label: field.label,
                      value: result
                  });
  
              });
  
          }
  
          return renderCell(record, field, model, cb);
  
      }, function (err, result) {
          return callback(err, { label: section.label, fields: result } );
      });
  
  }