exit via return, not next