I spent some time today re-working some things to implement sme of these additional ideas. I'll polish them up a bit and commit them tomorrow