a lot of structure changes