The service names should just be text_formatter.(type); they shouldn't have s9e in them. Part of the reason for the container is to be able to switch classes easily, e.g. a new kind of parser could be added that has it's own factory unrelated to your work.