def _clean_props(self):
        """
        Makes sure all properties are legit for isochrone.

        Not done in __init__ in order to save speed on loading.
        """
        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
Makes sure all properties are legit for isochrone.

        Not done in __init__ in order to save speed on loading.