just learned of the existence of setlocal