rename viewmodel to controller