Should we make this `:js:class:IMEvent`? Similarly for the events below.