why not just call self.term() in `__del__`?