It would be helpful to have better naming (and a big comment explaining the names) as to why you have multiple versions of each playEvent, pauseEvent...