error exit codes when appropriate