code: def register(cls, latin_name, synonyms, reference_assemblies):
          
          species = Species(
              latin_name=latin_name,
              synonyms=synonyms,
              reference_assemblies=reference_assemblies)
          cls._latin_names_to_species[species.latin_name] = species
          for synonym in synonyms:
              if synonym in cls._common_names_to_species:
                  raise ValueError("Can't use synonym '%s' for both %s and %s" % (
                      synonym,
                      species,
                      cls._common_names_to_species[synonym]))
              cls._common_names_to_species[synonym] = species
          for reference_name in reference_assemblies:
              if reference_name in cls._reference_names_to_species:
                  raise ValueError("Can't use reference '%s' for both %s and %s" % (
                      reference_name,
                      species,
                      cls._reference_names_to_species[reference_name]))
              cls._reference_names_to_species[reference_name] = species
          return species
docs: Create a Species object from the given arguments and enter into
          all the dicts used to look the species up by its fields.