added language functionality