Often, when I use the getkword function, when I provide the user with a list of keyword options, what I usually *really* end up doing with the user's response is setting a variable to some value - via some (cond...) statement of varying length, depending on the input of the moment and then going from there. Example: ; initialize layer... (setq message "Draw: (Wall/Column/Opening/Hatching)?") (initget "Wall Column Opening Hatching") (setq ObjectType_str (getkword message) ) (setq LayerName_str (cond ((eq ObjectType_str "Wall") "S-WALL") ((eq ObjectType_str "Column") "S-COLS") ((eq ObjectType_str "Opening") "S-OPEN") ((eq ObjectType_str "Hatching") "S-PATT") ) ) ; create/set layer ; ...now do more stuff Does this look/sound familiar? Now the getkword function I actually use is wrapped up a bit more, based on code found in the book Maximizing AutoCAD, in the sense that it provides for current and preset default options, which makes it much more user friendly. I'd post it, but since it isn't my code (and was commercially published at that), I don't feel I have the right to do so. Now, the above is straightforward enough, I suppose - but... I was wondering if any of you have found it useful to deal with the above scenario by 'wrapping things up' yet another time, with the idea that user selects Option X, but the value returned is 'what you really want', IOW, 'Alias X'. My thoughts on how to accomplish this would be to provide a list of dotted pairs, perhaps... like so in the above scenario: '(("Wall" . "S-WALL")("Column" . "S-COLS")("Opening" . "S-OPEN")("Hatching" . "S-PATT")) - and a brief message string (without the options, in this case, "Draw:"), whereupon the "real" command line message could be constructed from the (car's of the input list, as well as a constructed initget string, in the same manner. Current and default options could be provided as well, (or if none provided, a default based on the first member of the input list) The returned result would be the cdr of the assoc of the input list... *or* would it be more useful to return the assoc dotted pair itself - perhaps for further testing/branching? Seems that this 'keyword alias' result would abbreviate things quite a bit in many cases, especially with respects to the complete bypass of the following cond statement, no? I've already created my own version of this, btw, and it seems to work okay... but, I'm wondering you see that I am overlooking something important in the entire picture? Arbitrary input? (I haven't used this particular get* aspect much, I admit.) What about other types of 'alias returns'? For instance, in this particular case I'm thinking of returning an alias string or even a list of strings, but what about actually running an 'alias subroutine' or 'alias function' based on the keyword selected? Is this idea Good, Bad or Ugly? :) Most appreciative of any input. Best regards, David Kozina