added abstract BaseTranslator