viewModel triggers event