Okay, now you've learned that you want to store your data in a list, so you can separate concerns. You learned you'll start out with our edu.duke.StorageResource class, which is a simplified way of doing this. What exactly is a StorageResource and how do you use it? It's a class that holds a collection of strings. You can call .add to put a string into the StorageResource. You can also use .data to get an iterable, so you can iterate over all the strings that have been put into the StorageResource you've created. There are a few more methods and you can read about them in the Dukelearntoprogram.com website where there is a document page for the StorageResource class. Let's look at an example of using it. First, we are going to declare a variable sr of type StorageResource. Once we've declared the variable sr of type StorageResource, and initialized it to a new StorageResource, we'll see that it's empty. Then we might add a string such as, Hello. Then we might add another string such as, World. And then we could iterate over all the strings in the StorageResource by writing a for-each loop and using sr.data. Let's see what happens when we step through this code. The first line declares a variable, so we'll make a box for it labeled sr. And then calling new, creates a new StorageResource. It's going to be an empty list of strings which the sr variable will refer to. We'll add the string, Hello, to the storage resources list of strings. Similarly, sr.add World, will add, World, to the list. Now, we're at the for-each loop. We're iterating over sr.data. So, we'll make a variable we're going to use to iterate. And have it refer to the first item in the StorageResource object we created. By referring to this first item in the StorageResource object, we'll be able to print it. Here it refers to the first item in the StorageResource, the string Hello. Inside the body of the loop, we print out s. So, we print that. Then, we go back to the beginning of the loop and refer to the next string in the list, in this case, World. So, we print, World, as we enter the loop. Once we've reached the end of the loop, we go back to the beginning of the loop and see that there are no more strings in the list. So we will go past the loop and we are done iterating over the elements of sr. If you want to learn more about other methods in StorageResource or you forgot about the details of the ones we discussed here. You can find the documentation for this class on Dukelearntoprogram.com. Finally, let's see what our algorithm would look like to find all the genes and put them into a StorageResource. It's pretty much what you had before, as we show here. Except, we've made three changes. First, at the beginning of the algorithm, we make an empty StorageResource to put the strings we find, the genes in. After making the empty resource, we do something to each gene we found. We add it to the StorageResource. Finally at the end, we give an answer. We use the StorageResource with all the genes in it. Rather than printing them out, this method will return a value to whatever code called it. So, the caller can use the StorageResource and the data inside it for whatever purpose they want. That could be to print it, or it could be to process that data further. Have fun with StorageResource.