In many ways, action statements are the heart of an ESL program. The instant that a response statement is activated, it in turn activates a set of action statements that controls the processing, timing, and interaction among all parts of the ESL interface. Some action statements perform operations on objects - for example, changing attributes or contents of objects, adding or deleting objects, or changing class memberships. Other action statements perform such operations as assigning values to variables; calling routines; starting, stopping, and communicating with application programs; performing calculations; aiding in program debugging; and ending the ESL program.