minor but for readability i may break the setting of the exit status up a little