Hello Will, > This looks really nice to me. I think it is more useable and perhaps > more useful to have "real names" for the different types of key, and as > mentioned having a separate key for a default value is very nice for > later customisation. Thanks for that :-) I'd agree, hence my continued work on the keys3 idea. I hope that is now getting toward the point where is really does point to a way to implement a general keyval creation system in LaTeX3. One thing to notice about template (which I've only just discovered myself) is that the "default" arguments it creates: key =n [default] \l_some_tl are not defaults in the (x)keyval/kvoptions/pgfkeys/key3 sense. In template, this is the value initially assigned to a key before processing, whereas in the other systems a default is what is used if only the key name is given. More on that to follow as I sort it out! Joseph