Instead of using APIs to share connected component, perhaps we can add a designated functionality for contributing and getting components, like: shell.getComponent(MouseActionAcceptor) where MouseActionAcceptor can be also used as key.