Did some refactoring of extensions and viewmodels