Lots of modifications