def get_meshables(self):
        """
        return a list of components that are meshable (generally stars, but handles
            the envelope for an contact_binary)
        """

        l = re.findall(r"[\w']+", self.get_value())
        # now search for indices of star and take the next entry from this flat list
        meshables = [l[i+1] for i,s in enumerate(l) if s in ['star', 'envelope']]

        # now we want to remove any star which has a sibling envelope
        has_sibling_envelope = []
        for item in meshables:
            if self.get_sibling_of(item, kind='envelope'):
                has_sibling_envelope.append(item)

        return [m for m in meshables if m not in has_sibling_envelope]
return a list of components that are meshable (generally stars, but handles
            the envelope for an contact_binary)