Added a bunch of stuff (this is going to be very loosely committed)