Implemented basic event system