The context manager doesn't work - I don't really know how context manager handle exceptions - is there a way to make that work?  I think doing this with a context manager would be better than with a decorator