added listener handler
added enums for events