I'm going to think about this some more---and finish my rewrite based on @instagibbs's previous suggestions---before I make any more changes to see if I can find a more satisfactory solution.