-Everything is wrapped into objects
-Function table is placed directly into the class instance and can be
modified after construction
-There is no distinction between utility classes (linked lists, hashes) and
user-written code
-Objects communicate using method calls, deferred execution queues and
event-driven callbacks