How Does Viewmodel Work Internally