lots of smaller changes