better control over exit code in cli