Initial commit

Basic functionality for building and switching Components.