Virtualization is not the end game. When we talk about virtual machines in particular, it's a step along the way. It's part of this journey. I'm going from those physical machines in the past, where inside operational network, they're very dedicated, for fixed function sometimes we talk about that, sometimes we talk about it from that purpose-built standpoint, to one where we're actually utilizing those resources more effectively, their hearts stranded resources, we've assured that we've got tenancy, separation because of virtual machine to one in a future where we see a more distributed virtualization where we've got the concept of those compute network and storage elements I spoke of before. They present themselves as a resource pool, and then from an orchestration standpoint, when we've got applications that need to be instantiated, we can probe our resource pool and find the right collection of services or capabilities from platform, and then instantiate those applications on top of that, on top of that resource pool. So those are some of the motivations. Now, there's a penalty in performance. When we do this, is that if it we're a perfect world, there wouldn't be one, but this is a physical world that we're operating in, and when we start having multiple instantiations of operating systems, there's going to be some overhead. We've got network interface. Is that we've got to concern ourselves within the traffic flowing in and out of those network interfaces and they've got a greater volume of software potential that they need to flow through. Similarly, some of those cores maybe nearer or further away from some of those physical resources. So we may not see the actual capabilities from the native performance on those systems that were purpose-built in the past, and again, those may have stranded resources. So this is the balancing game if you will on that teeter-totter, but what we want to do is we want to raise that virtualization platform, as high as possible, and sometimes what we're going to have to do that with hardware sys capabilities. So whether that hardware exist is something that's actually taking place down a layer too low in the network driver, whether that's acceleration that's in the software using virtualization capabilities like the DPDK packet acceleration capability, or whether that's other acceleration capabilities that come in from adjacency cars like we mentioned the quick assist technology for encryption, or compression obviously decryption and decompression as well. But in addition to that, one of the things that Intel has continued to drive for the last 15 or 18 years or so in this virtualization space on the server space though, is to continue to improve the micro architecture with each iteration, of those releases of the Xeon processors to enhance the performance, that's needed in order to meet the goals of that virtualization. So our road map continues to evolve, as we learn more and as we move forward with this virtualization effort. So with that in mind, let's take a step back, and talk about the hypervisors themselves. The hypervisors are an element that's necessary in this virtualization layer. We're going to look at a couple of the diagrams as we dig down into this, and fundamentally, the computer science folks like to break hypervisors up into two areas. They call, they talk about them as type one and type two. It's interesting that the hypervisor term itself is sort of the superior to the supervisor, and the supervisor was the concept of what the operating system provided. So it's not unusual that we can now think about the hypervisor, as being extension to what takes place at the operating system level, and in those two types of hypervisors type one and type two, again this is a purest to view of the world, not necessarily the actual application to be the work. Type one, is that there's may not be an actual host operating system. The hypervisor itself runs native on top of the bare metal, and then type two you will have a host operating system, and then a hypervisor, and then instantiate it on top of that multiples. We've got examples. ESXi, and Hyper-V or the type one, and probably the more common would be KVM, or VirtualBox which you're going to find has the type two.