upgraded from optparse to argparse & using sub-commands