lots of interesting changes