Alright, this is going to be a massive brain dump that is for my benefit as well as yours. If this "intro" is well received, I will continue with more posts that have more technical detail on the design decisions I am struggling with. Before I start, let me get a few things out of the way...