Merged similar views and viewmodels into more generic base classes + refactored a lot