much work on language.c