I had no time to use your code yet, but it seems to me a very nice contribution, and not only for beginners.
Thanks.