docs: def main(self):
          """
          Main function that gets file(s), creates outputs, and runs all operations.
          :return dict: Updated or original data for jsonld file
          """
          logger_doi_resolver.info("enter doi_resolver")
          for idx, pub in enumerate(self.root_dict['pub']):
              # Retrieve DOI id key-value from the root_dict
              doi_string, doi_found = self.find_doi(pub)
  
              if doi_found:
                  logger_doi_resolver.info("doi found: {}".format(doi_string))
                  # Empty list for no match, or list of 1+ matching DOI id strings
                  doi_list = clean_doi(doi_string)
                  if not doi_list:
                      self.illegal_doi(doi_string)
                  else:
                      for doi_id in doi_list:
                          self.get_data(doi_id, idx)
              else:
                  logger_doi_resolver.warn("doi not found: publication index: {}".format(self.name, idx))
                  self.root_dict['pub'][idx]['pubDataUrl'] = 'Manually Entered'
          logger_doi_resolver.info("exit doi_resolver")
          return rm_empty_fields(self.root_dict)