add better language support