be consistent and use return instead of exit