The public API of the platform is designed by interfaces. For most interfaces we currently have only one implementation. We should provide factory classes here.
@aalmiray Do you need an additional factory or can we close this one?
As long as every creation of an*Impl class is backed by a factory, that is, production code should not have calls to new paired with *Impl classes. Same thing would be true for all magic singletons classes already found in the codebase (I'm aware some magic singletons may be too difficult to refactor).
I think that all singletons are removed with the new pull requests but I don't know if we have all needed factories. Let's do it like this: after review / merge of #123 and #121 and the release of 0.8.3 we will check if there are additional factories needed. Then we collect them here and provide them for 0.8.4 Once this is done we can close this issue.
I added several factories for 0.8.4. I think for the future we should open more specific issues and close this one. @aalmiray ok?