exit codes and slightly nicer error message