What happens when I forget to use it as a context manager? Should we maybe add a check that `__enter__` is called first and `__exit__` was not yet called?