clean. use argparse