should we do this in `try / finally` fashion?