+ make sure exit is called explicitly