 Now that we have a Pokemon, I'd like to list that Pokemon's abilities, the ones that come along in the API. Now to work with lists, we need to understand how children work in React. So typically if we had a list, we'd have something, some markup like this, an unordered list, there'd be some list item inside of it, or any number of those. Now all of these list items are children of this unordered list. Children don't just have to be text and other elements, they can actually be arrays. And those arrays can be filled with these elements. And in the case where we have an array of data that we'd like to render elements for, we can use map to do that transformation and return a new array with those elements. This pattern is incredibly powerful and it's how we do lists in React. Now right here I'm using this static array, but I can change that to display the abilities of my Pokemon. So we'll map over the abilities array and take each ability. Now the API is a little funky in this area, so it's actually ability, ability.name. And there we have it, a dynamic list of list items of abilities. As a review, let's go over this again. We have a character, we know that because we're in this condition, which says we have a character. And in our character from the API is an abilities array. We map over that array to create a new array. And in that array, we transform each ability into this list item and display the name off of that ability. So here it's chlorophyll and overgrow. There's one thing that we need to do to help React do the bookkeeping for these dynamic elements. And we see that in this error here, each child in an array or iterator should have a unique key prop. And that error is referring to this chunk of code here, where we're dynamically mapping over this array and creating elements. It wants us to provide a key so that it can know as elements go in and out, which elements are the same and which ones changed. Unfortunately, the pocket API doesn't have an ID. An ID would be ideal. But I think in this case, we can get away with ability.name. This is an area where you kind of have to use your best judgment. If you have an ID, use it. If you don't, you might need to generate a UU ID or just use something that you know is going to be unique enough from render to render. So that's it for lists. Really, at this point, you can make 99.7% of the internet.