exit rather than return