first try at sharable component.
As is, the component element names are too much 'hard coded' to the
component itself. However ... it works!