implemented argparse based cli