refactor argparse subparsers