lots of changes

lots of changes