argparse and better interface