It would be better to not do the rescaling if it's not needed (it increases memory use). I'd set `self.scale = None` and check `if self.scale is None: ... else: ...`