lots of changes and updates