added basic event handling classes