C
So this is draft 1. I guess I rambled on a bit, but I wanted to give some background. I haven't even reached the interesting part yet. Would code examples allow this to be better understood? How much background is actually needed here? Does it all make sense? Is it interesting enough that readers would want to continue?