must use explicit events to trigger