Lots of refactoring of extensions and how they are organized