 Something that I noticed had just popped into Canary. I kind of knew there was plans for it, but I didn't realize how far along it was. And now it's in Canary, is event target. That's been a thing. That has been a thing. So event target is the thing that gives us add. It's a horrible name, by the way, I think. Event target, yeah. Because the thing makes event target makes a thing something that can emit events. Well, Node calls it event emitter, which is a better name, I agree. But event target has been with us for many, many years. That's all the things on the web that are ill-named, usually are. Yes, so we can't change it now. But that's everything that has an event listener inherits from. Yeah, and the thing is, it's usually something that you only see in the specs. Like you see this new thing, it implements event target. Yes. But it actually extends. Or it extends, but it actually cannot extend it in your code. Until now. Finally. Because if you've done anything with events before, that you've wanted your own PubSub or something kind of system, you end up thinking, well, I'll get a library, or I'll write my own, or something. Like usually you end up with horrible hacks. And I was one of these people who wrote horrible hacks. Yeah, exactly. Just to repeat something that's already on the platform. It's a total violation of the extensible web. And so people, I think it was Dominic Tenecola, have got together and actually expect what the constructor looks like, and how you would extend it, and how you would use it. And it's now in Canary. You can do new event targets. Oh, that's so good. You can do class whatever extends event target. And now you have add event listener. Now you have dispatch events. You've got the whole thing. Which is the only two things you need. Right, exactly. Well, and this is the thing that there's this kind of long-term plan that at some point we'll replace add event listener or not replace it, we'll enhance it with observables. Yes, I've seen the current like, I'm going to call it a scratch pad because it's probably too early to call it an even explainer. Well, there's been loads, right? There's been loads of little, yeah, loads of little ideas around this. But the kind of, the central agreement is that this should be how we do events in future. Things that can do events should also be able to do observables, which is a stream of events. But be careful with that. Right, yes. But this means that you can, like, if everyone starts using event target now, you know, once we get the support across the board, it means when observables do land. Support across the board. Support across the board. That's a good catchphrase. Is that another jingle that we need? No, maybe. Probably not. Yeah, but then when observables land, that, you know, you'll get those for free as well. That would be really, really good. It's one of those things that kind of seems well, the thing is, I'm not sure the people listening, slash, watching are necessarily aware of what you have to do because the only things that extended event target that were, like, tangible for you were DOM elements. Yes. Or message boards. Yes. As far as I know. There's lots of, well, things like navigated.serviceworker extends event target. There's lots of stuff. Yeah. So for example, the thing, I basically wrote a little tweet where I was like, oh, look, here's a nice way where you can build your own event target. I would legit just create a message port, message channel, which is to message port, rip out one port and it would have dispatch event and add event listener and I will just bind these functions to my own object and suddenly my object would be kind of like. Right. That's a nice hack just built around a very small. It's still a hack. For example, event.target is always going to be wrong because it would be the message port of the actual object I used. And this in the function would be wrong for the same reason. Yeah, unless you bound this and your functions are, you know, all these, it's just, and then remove event listener wouldn't work again. You know? Unless you patch that. Yeah, okay. It was just horrible and people were using it anyway because there was no other choice and so it's so good that they finally came up with something and it is. Yes. It's just another thing in the browser that's exposed to developers as it should have always been. It's dense on the web. It works. Just so you know, it's just, it's just as good as this. So I'll just punch in and hit it. Okay. Does it already break? Yeah. Is that a little punch like me said? Yeah.