i have (again) compleatly rewritten the code and redesigned it. You can
see the design in the readme when i actually write it (or just read the
main method)