major changes, looks like everything works

I worked out all the kinks that I found. After testing, it looks like
every option in the program works like I wanted it to. Let me know if
you see anything wrong/things that should be changed.