generic for language version interfaces