Modern software design has less writing large programs and more orchestrating the actions of prewritten library elements. These elements, generally known as components, are stateful software elements which can operate and interact in unexpected ways. Most errors in large systems result from unanticipated behavior from components, or unexpected interaction between components. In this paper, we argue that two principal innovations permit the rapid construction of far more robust and reliable software systems: rigorous containment, to control interactions, and active modeling with dynamic model checking, to rapidly detect unexpected behavior. We outline a small set of requirements which will produce such a system, NanoXen, of virtual components, the component analog to virtual machines.