why not just use "break" instead of cleanup and return?