This session shows how tests can use the factory to control the type of components that get instantiated in a UVM environment and how to write environments and components to support customization. It covers the configuration database that allows tests to override configuration information used by environments and components.