I didn't read the LISP version, but I can tell you from experience, you will want to use different tag names for ALL the attributes, so when you extract it, it wont cause problems with the visability states. I had many fits trying to make it work, which I eventually did, but abandoned it later b/c it was huge pain in the neck