Refactored ViewModels
Some refactorings + tests