I'm not sure about the aux implementation for replacing the goto, but it's actually pretty good.