## Moderator's My World

Moderators can become annoyed by having all the peer-to-peer reviews
they are responsible for sitting in their My World.

They therefore have to regularly go back and check to see whether the
other reviewers have done their work so that the review can be
progressed.

There is on option to avoid this problem: The moderator can un-assign
themselves from the review. They will be re-assigned to the review when
all users have completed. Of course, there is always the problem that
the reviewers don't all complete the review which is why it may need to
remain on the moderator's My World.