a bunch of modifications