This is work on bug #7906.  I got the framework in place, now I just need to add in the details.