my solution so far

If you want to run my current version of the program, read the readme