Lots of changes
clean