Breaking out TraitFactory interface from the enum