it's like context managers! thanks @supernullset