redo file formatting
change formatting again
added a crap ton of unit tests and did some refactoring
redid require statements so not everything is loaded in the beginning