'translate' implementation