Does Kotlin have any native way of working with an event driven architecture (like in C#, or Node.js EventEmitters)? I'm planning on making a library that, by definition, must be event driven and allow the user to define a set of handlers in response to the occurrence of a certain event. What would be the preferred way in Kotlin, or the best way according to your personal preferences? I'm thinking of defining an event class which has a list of handlers and then define a subscribe method to add the functions. I'm willing to implement this from scratch, but the main purpose of the library is not this one and I prefer to reuse an existing library if possible.