Refactor the narrator service