I had an epiphany a couple hours ago and threw together this mockup:  I have code that works but it's dependent on #249 and could use some refinement