This is work on bug #7468.  The system is rebuilt, now I just have to change it so everyone uses the new functions.