exit() changed to use abort()