code: def _clean_props(self):
          
          remove = []
          for p in self.properties.keys():
              if not hasattr(self.ic, p) and \
                p not in self.ic.bands and p not in ['parallax','feh','age','mass_B','mass_C'] and \
                not re.search('delta_',p):
                  remove.append(p)
  
          for p in remove:
              del self.properties[p]
  
          if len(remove) > 0:
              logging.warning('Properties removed from Model because ' +
                              'not present in {}: {}'.format(type(self.ic),remove))
  
          remove = []
          for p in self.properties.keys():
              try:
                  val = self.properties[p][0]
                  if not np.isfinite(val):
                      remove.append(p)
              except:
                  pass
  
          for p in remove:
              del self.properties[p]
  
          if len(remove) > 0:
              logging.warning('Properties removed from Model because ' +
                              'value is nan or inf: {}'.format(remove))
          
  
  
          self._props_cleaned = True
docs: Makes sure all properties are legit for isochrone.
  
          Not done in __init__ in order to save speed on loading.