code: def chemicals(self):
          
          path = ['enhancement', 'chemicalgroup', 'chemicals']
          items = listify(chained_get(self._head, path, []))
          chemical = namedtuple('Chemical', 'source chemical_name cas_registry_number')
          out = []
          for item in items:
              for chem in listify(item['chemical']):
                  number = chem.get('cas-registry-number')
                  try:  # Multiple numbers given
                      num = ";".join([n['$'] for n in number])
                  except TypeError:
                      num = number
                  new = chemical(source=item['@source'], cas_registry_number=num,
                                 chemical_name=chem['chemical-name'])
                  out.append(new)
          return out or None
docs: List of namedtuples representing chemical entities in the form
          (source, chemical_name, cas_registry_number).  In case multiple
          numbers given, they are joined on ";".