 We now have this beautiful Fetch Pokemon component, and it's almost completely isolated to only thinking about fetching Pokemon data. There are two exceptions here in Render. One, it can only render Pokemon, and second, it has this very specific loading. I've shown you two ways how to compose components in to other components, and I'd like to show you a third, the higher order component. This isn't my favorite, but it's very popular, so you should know how to do it. It starts by wrapping this entire component class in a function. We'll create a new function. Higher order components usually start with a with. In this case, it'll be with Pokemon. And in their simplest form, they take a component as an argument. They then return the component class. And like we did with component as prop, we'll take this very specific component that we're rendering and replace it with the component that we receive as an argument. This doesn't work yet because we haven't used with component to compose a new component. So let's do that. Here we'll create a new component. And we'll call this Fetch Pokemon. And this is where we compose with Pokemon, the higher order component, with our Pokemon component that only cares about displaying. We'll give this a click to make sure that everything works as it did before. And it does. So let's review. We made a new Fetch Pokemon component. It's the composition of this with Pokemon higher order component function and the unknowing Pokemon component. And let's look at those again. Pokemon defined here doesn't know anything about fetching data. It simply takes props and assumes that it has a character to render. It's wrapped in this higher order component function with Pokemon, which takes a component, in this case, our Pokemon component, and wraps it in this, a component that knows how to fetch a Pokemon given the prop ID, and then renders any component that takes character as a prop. Now, the disadvantage to this is that it suffers the same coupling as the component as prop pattern, where we can only use components that take very specific props. We can't map that dynamically without some additional gymnastics. This is why I prefer the render prop pattern.