Why float shared pointers? Shouldn't it be some kind of connector type (PluginConnector?)?