So far, we've done quite a lot. We've done primitive data and primitive operations on that data. You learned, how to design functions recipe and how to design data recipe and you also learned, how to design worlds recipe. For designing world programs like animations and games. Most recently, we looked at compound data and learned how to use that in world programs. But so far all of the data definitions we've worked with have been what's called fixed size. And this week, we're going to add to our repertoire, working with arbitrary-size data. Now what do I mean by arbitrary-size data? I mean the kind of data we use when we want to represent an unknown amount of information. Information that we don't know upfront how much there will be. So, for example, if we ant to represent all of someone's favorite hockey teams, or all the students in a chorus. We just don't know, how many of those that will be, up front and that's what we need arbitrary sized data for. So, that's what we're going to work with this week. We'll look at how to do the data definitions. And we'll look at the effect that has on functions we design on that data.