It might make sense for `DocumentGroupOrdering` to be a prototyped object so you can use `this` instead of the global `self`. Also means `DocumentGroupOrdering` won't be a singleton. (Yay.)