On a second thought, Default things are named properly. We need to extract interfaces from them, marks the classes as internal and expose interfaces from the framework and factories.