recommend just using try/finally for resource cleanup