Does most of what I want.

Still needs more improvements on the UX side of things.  Works
for now.