improved error handling and allows redefinition of variables. No longer allows unquoted, nonselfevaluating lists (e.g. (1 2 3))