added viewmodel and ObservableBase