Reverted earlier changes to try to support auto-closing -- turns out to be much more difficult to implement, no clearly efficient solution better than using finalize()