lots of lots of changes and stuff