Better encapsulation of ReviewData
Now implements Iterable and can return an iterator
ReviewIDGenerator encapsulates creation of review ID