Implemented MVVM