work on ViewModel