Changed translation to return an either for errors