I think if "mode" were actually not a string, we could have already errored out back in defineLanguage()... maybe the validation should be done there instead?  It also seems redundant to double-check that the mode is loaded when this is a private method called only by code that has just done exactly that.