GSP: add basic event handling system