Either TextModel should have configuration methods #beForCode and #beForText or there should be TextModel and a CodeModel (sub)class. And from what you say, the plain variant is not even provided in Spec.