refactor argparse, adding subparsers