clean up args, add arg help, and rearrange main exception handling