wouldn't `len(self._smat)` be better since nothing then needs to be computed?