Classes have services invoked by message passing.
Classes can be part of an IS-A hierarchy.
Object and class behavior can be modified at run time. An object can change it class and a class can even change its place in a hierarchy. Also, the code of object-services can be dynamically changed. In addition, Prolog's pattern-matching and backtracking mechanisms can be used in combination with these paradigms for matching attributes, backtracking services etc. This version is limited to 10 objects, but is otherwise fully functional.