complete the mvvm