this looks ugly. I suggest to rewrite interface to extra event data.