We should implment stubs for the abstract classes as needed. We can start with a simple implementation and update it along with the tests as we flesh out a real implementation.
We might not have a factory so much as a main class holding refs. The transformer could be this class and would be "initialized" by the loader
Later improvements
- transformer wrapper that is qobject and can be moved to a new thread