more rubylike, exit on cancel