Major refactor

Major change was to move to using argparse and argcomplete