added a whole bunch of stuff