adding part1 of translation refactoring