Hi Angelo maybe there is misunderstanding. I only point here to that you have in code
```
public:

```
without any method.
but I have one objection to this class. What is its purpose? If I get this abstract class what I can do with it? It looks like nothing, it have only constructor and destructor, but no real method that do anything.

My goal is to make code more readable and easy to use by anyone and when I see this class I don't see reason why it is needed as it doesn't provide even interface as I expect from abstract class ( which is what I expect from method which have all methods protected).

So consider you are new developer and check how it works. And this is class that provide nothing. Below you have method
```
YExternalWidgetFactory* YExternalWidgets::externalWidgetFactory()
```
so if you call this method you get pointer to object that do nothing. So from my POV it can be useful only if you want to use `dynamic_cast`.

If you plan to have more factories, then maybe at least method that can say what items it can create helps. I consider use case where you need special widget and need to find which factory provide given widget to create it.

@mvidner is now ill, but I hope he will be back this week and then we need to discuss about possible backup to not stuck development.

Thanks
Josef