List functions now using template throughout

Might revert to old implementation though: seem to end up abusing
innerHTML.