lots of rework and structure change