Last step of refactoring before adding support for > 1000 entities.
Make helper functions. One extracts list parameters.
One creates links more simply. This is cleaning up the large
function body so I can move stuff around more radically.
Patch by: Dan Bentley