My first question when seeing somthing like this is always (OK, it often isn't, but normaly should be) why aren't you using an existing system? It's by thinking about the problems with other WTDI that we come up with how the best way to do it is for our situation. If the reason is "a bad case of instutional NIH that I can't do anything about" or "for the fun of it" (in which I include "to learn"), that's one thing, but if the reason is "because I havn't looked at them", then that's somthing else. If there's some specific shortcoming, think about what caused that shortcoming very carefuly, so as to not duplicate it. At the same time, of course, you must be careful not to fall into an opposing trap.
I'll render another oppionion after reading your post -- perhaps.
Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).