lots of changes everywhere