Whole bunch of stuff, probably gonna redo this repo argh