Lots of changes
some missed commits
some missed commits