grafted on tablesorter and some fixes to make it go, not super clean; technically fixes #16, but want to look at a long-term solution