move view model functionality