lots of stuff modified