I think we're going to have problems when `idx is not None`, since now `self._data.shape[0]` will not be equal to the number of vertices... right?