Events

Event system. Tested with multiple listeners and it seems to work just fine.