Program nearly finished. Everything works perfectly about 50% of the time. Remaining bugs are listed in the README.