refactor LanguageModel
refactor LanguageModelIRST