This is nicely done. Its late and I don't have time to comment more but if I can get back to it I'll try.