refactor: extract tranlation to its own class