fixed lots of things, broke some others