 Hey, I'm TenTastic. This is React Holiday 25 day crash course through React. Today is day number 22. And I want to show you a pattern that I've seen quite a bit with context and use reducer. Now, right now we have this Pokemon context provider, and it's providing just the Pokemon to this Pokemon component. That's fine, but where this gets interesting from an application standpoint is when we pass both the data and the method of updating that data. So the Pokemon and then the dispatch function. This is a lot like Redux. It's just a reducer on context. So how do we do that? Well, first of all, we're destructuring all this stuff right now from use reducer. We don't want to do that anymore. We're just going to call this something like state reducer. And then down here to like prevent a lot of rework of this component, I can actually just do let face what we had before and set that from state reducer. OK, so that's just to prevent from having to rename a bunch of stuff in the component. But now I have this full state reducer that I can pass to as a value on context. So state reducer, pass that along. I will need to update my Pokemon component, which is using context. And I destructure this object the same way that I would if I was pulling it off of use reducer directly. So I know this first one is state. And so I'm going to structure that, get the Pokemon name. And this is actually one more level deep. So we'll do. That and then if I want to dispatch actions, I can actually take that function off as well. So I'm not going to do anything because we don't have enough time in this video, but you can play with it in as an extra credit. And let's see if we did everything right. We did. So now we have this really cool thing where we have a context provider and we're providing a state reducer. Super awesome. I've seen this kind of referred to as a controller component, but really it's just a reducer on context.