abstract class language support

language support