1. A computer-implemented method of exposing commands in a software application program comprising: associating multiple context blocks with individual expressions, individual context blocks containing one or more commands, individual expressions defining conditions that describe one or more aspects of a user's interaction with the application program; evaluating at least portions of at least some of the expressions responsive to a change in the user's context; and displaying, for the user, at least one context block responsive to said evaluating.