Lots of changes, sorry too many to list