prototyping an event system