My idea of components - heavily a work in progress