I'm a little confused as to how you handle user input via events given that some input may have a time element.
For example, in a shooter you may tap the screen to fire and hold the touch to continually fire, in this case the refire rate would be based on the time between shots whereas in the touch event you have no concept of the delta.
Is it a case that you set input flags that an update method can then process? Or do you store the time in your touch events and calculate it there?
As an aside, do the touch events run on the same thread as the main update method? as I guess this would effect whether you have to sync access to items both might access.