more work on viewmodel