dont assume an event will be passed to invoke