implemented argparse to deal with parameters and usage.