work so far (before I made a repo). TODO: add a GUI, make sure it works on windows