split some functionality out to new LanguageGridPane view