Some changes have been made to classes: the operator overloading mechanism is more flexible, providing more support for non-numeric use of operators (including calling an object as if it were a function), and it is possible to trap attribute accesses.