Also fixes a few bugs.
divided code into multiple files paperpile style argparse setup.py with script option