have states handle events