code: def getInvestigators(self, tags = None, seperator = ";", _getTag = False):
          
          #By default we don't know which field has the investigators
          investVal = []
          retTag = None
          if tags is not None:
              if not isinstance(tags, list):
                  tags = [tags]
              for tag in tags:
                  try:
                      tval = self[tag].split(seperator)
                      if _getTag:
                          investVal += [(t.strip(), tag) for t in tval]
                      else:
                          investVal += [t.strip() for t in tval]
                  except KeyError:
                      pass
                  except AttributeError:
                      tval = [auth.split(seperator)[0] for auth in self[tag]]
                      if _getTag:
                          investVal += [(t.strip(), tag) for t in tval]
                      else:
                          investVal += [t.strip() for t in tval]
          return investVal
docs: Returns a list of the names of investigators. This is done by looking (in order) for any of fields in _tags_ and splitting the strings on _seperator_. If no strings are found an empty list will be returned.
  
          *Note* for some Grants `getInvestigators` has been overwritten and will ignore the arguments and simply provide the investigators.
  
          # Parameters
  
          _tags_ : `optional list[str]`
  
          > A list of the tags to look for investigators in
  
          _seperator_ : `optional str`
  
          > The string that separators each investigators name  within the column
  
          # Returns
  
          `list [str]`
  
          > A list of all the found investigator's names