So, IoT, as we talked about the tsunami of these devices that 20-50 billion devices are going to be connected, are going to have significant impact on that service provider architecture not just only for the network slicing, but also because of their requirement that is going to bring an agile access. We know that these devices are not all going to be connected via a sim card directly into the 4G or 5G network. In many cases, there are going to access it via a variety of license spectrum connection. Some of those will be narrowband IoT, for example. When we think about some of the sensory devices that don't have a lot of data nor control plane usage, and need that very long battery life that we talked about. Because of that functionality, those devices are going to go sleep for a very long period of time. They're going to wake up some little slug of data. That's a transformation to the specs, where again we think about the way the familiar cellphone that we I'm going to pocket, which is sitting there talking to the network on a relatively frequent basis even if we don't do anything with it. It's saying, "Hey, I'm here or are you still there and it's doing these types of things." That consumes battery that we don't want to consume on these narrowband type IoT devices. In addition to that, as I said, not all the devices are going to be directly connected in a network in a number of them, possibly a very large number of them are going to come in through unlicensed spectrum network technology. For example, low-power wide area technologies, Sigfox or Laura, or some of the other emerging technologies are going to be used. Again, those devices will come in through some type of gateway, there'll be aggregated together and information from a variety of centers, potentially aggregated together. Then, they'll provide access into that macro network either through a device like a 5G interface that maybe fixed bit of capability or through some mobility device, or through an aggregation that comes in through some other type of physical connectivity whether that's a customer premises equipment that's aggregating them together, or some other type of MSO type of connectivity. So, these devices we know that their IP addresses will exists, are going to be controlling, and put traffic into our network, and I'm going to come in through a variety of access mechanisms not just a singular access mechanism. Unlike the cell phones that we carry in our pocket today, and we know that those are always going to come in through either a macro or micro connectivity. We also are going to have agile aggregation. Some of these devices, as we said before, are going to need much higher bandwidth, are much higher frequency are going to be appearing in a much higher number than other devices and we're going to be able to classify those if we're intelligent, and as we allocate those networks. So, if we've got access for very large factory at a particular address, a location, that factory is not going to get up and move 5,000 employees, hundreds of acres of landscape or whatever it happens to be the service provider. May provide capabilities into that factory that are different than provides 50 kilometers down the road, where we may have less concentration of those types of devices. So, that aggregation, that agility as we look at those local data centers, and that range maybe a local data center transitionary barrier, will allow us to look at the resources inside the network somewhat differently. Then, finally, the core of itself. The agile in the network of the core than we've talked a little bit about network functions virtualization and the SDN. Before we get hung up on that, and it was something we should have talked about it at some point in the past, I would say is fair. The network function virtualization concept and we'll get into in a little bit more. Let's not get hung up on whether these are virtual machines or whether these are containerize type applications. What we're really talking about is the fact that we've disaggregated that network. We're no longer looking at a purpose-built solution, but we're looking at running these functionalities on an agile core that allows us to have standard compute networking and storage resources that can be allocated dynamically to the slices would come into place. So, these are all important technologies that will enable us to provide that flexibility and efficiency, not only for the IoT use cases, but also for the legacy services that are going to coexist inside that network as we move forward in time. So, moving on into the specifics, then, one of the things that we introduced very briefly was the fact that some of those are compute resources we talked about initially when we're speaking about platooning of trucks, is we may need to bring some of those compute resources from deeper into the core of the network out towards the edge. There's going to be some discussion about edge computing and the function either that takes place there, and IoT is going to be one of those big drivers is that we, in some cases, don't see that huge need for it today, in our existing infrastructure. But, as we look forward to some of those applications, we're going to need to bring those compute resources closer to that edge, not for every use case, but for some of them and again, it's going to be dynamically allocated. That's can provide cloud-like capabilities closer to that radio access network, closer to the actual consumption of that user. Whether it's now ITUs or with UE or whether it's going to be some type of IoT user. Obviously, we don't know exactly what the massive introduction of these IoT devices is going to bring for us, and we want to be able to have that dynamics in there as that evolves and changes. The core computing. So, the SDN and NFV, sometime we turn around. So, that software-defined networking allows us to reconfigure the core from an infrastructure standpoint and that is telling these devices how they're interconnected. So that with traffic most effectively from device to device inside of that core of the network in its manage. Then, the application that is using optimally the resources of the network computing storage before it through technologies of virtualization are going to be very important to that flexibility that we need. So, we can get that effective efficiency out of the network for the both the burden of these IoT use cases it will bring to it. Then, finally, we're going to see that, this network slicing that we spoke of needs to be dynamic. It's going to be dynamic in a programmatical way. That means the devices themselves are going to allow us access to that reconfigurability and SDN is going to play a critical role in that dynamic because that's a control issue in that dynamic reconfiguration of those devices. Again, we think about the transition of the burden of those network, the mobile user versus the video users are in transition. We may want to allocate those network slices to different capacities in SDN is the technology that's going to allow us to do that. Then, finally, it's reaching towards that point of giving us that programmability of the network that allows us to quickly introduce, or evolve, or experiment, even with new services and functions inside that software-defined infrastructure of that network.