add --verbose option
more robust error handling