I started this process with the desire to simply add the ability to configure the program via command line arguments
and ended up biting off way more than I could chew. I may have unintentionally
introduced a number of additional bugs in this update, but the simple tests I ran seemed
to work. More work needs to be done to catch errors, but, theoretically, this closes issue #2.