This is a good portion of the work for bug #8139.  All I have to do is to put it in tabs and make view/export work.