add language support
test and cover improvements