Can't you assign `self.info = info` and `self.data = all_data` and then just call `apply_projector()` (with the guts of `_apply_projector()` moved inside)? It seems overkill to separate it if the two functions really do the same thing.