 Now, there's one thing that niggles a little bit about this setup, we have an ID pager and it takes a component and that's great, but we have this coupling here where any component that we provide needs to take ID as a prop. If we go up to our Pokemon component, we can see that we do expect ID as a prop. We use it all over the place. But what if we wanted to use a component that used a prop named index instead of ID? Well, we're kind of host. It'd be real nice if our ID pager didn't care. Now we can make it not care with a function. Let's say instead of a component, we said, hey, this is what I want you to render. Give me props as an argument and then I'll do whatever I need to do to render the thing that I care about. So take some props, render the thing that I care about using those props. So what does it look like inside of our component? Well, we can call it like a function. This dot props dot render and give it the data that we care about, which is ID this dot state dot ID, get rid of our component version and see that everything works the way we wanted it to. Now additionally, it gives us control down the road if we decide that now we want to style this in a very specific way for this context. This could be a big Pokemon or a featured Pokemon. Instead of being locked down to the implementation, we have the freedom to do anything that we want here and we can use any component because we can map props ID to index or character ID. We can map it to however this component is set up to take props. And that is very cool and extremely powerful. I'll tell you right here, this is how I compose most of my components most of the time.