docs: def each(self, field_names):
          """Iterate over the results, yielding a list for each result, where
          each element corresponds to the field given in the field_name parameters
          
          Parameters
          ----------
          field_names: list of str
              The names of the fields to be returned during iteration
              
          Returns
          -------
          None
          
          Exceptions
          ----------
          raises something when a field name is not in self.fields
          """
          field_ids = []
          for f in field_names:
              # below raises error if the field name is not found, so
              # don't need to account for that.
              field_ids.append(self.fields.index(f))
          
          for r in self.results:
              yield([r[i] for i in field_ids])