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)