changes because of MVVM structure