more comments, some async tidying and make use of exit codes