It is very intentional. I don't want to export the internal mechanics of creating the objects.
That is a private thing to these classes.

Currently we hide these mechanics by extern'ning them. I would prefer a _private.h organisation but that seems out of scope.