Today we exit with non-zero exit code in the event of an error. Should we consider being more granular with our exit codes: example, return `2` for 'system already registered' and `3` for 'unsupported puppet version'