refactored viewmodels & pages