mvvm clock refactor