return instead of exit