add more croak style
add support for the trace option (-v)
add support for non-interactive option (-n)