big commit; lots of stuff