Whole bunch of stuff I'll probably have to fix