Classes in Avaj are real. The concepts of "class" and "type" are the same. Each class has a meta-class to describe the class and support inheritance on the class side. Types that are built-in, such as "int" or "float" and concepts like arrays, are modeled by Avaj classes (although highly optimized at runtime).
The designers of Avaj built on their experiences with other computer languages. For example, dynamic languages like Lisp and Smalltalk have closures, making concepts like iterators and inner-classes obsolete. These constructs and other redundancies were not added to the language.
Unfortunately, all work stopped on Avaj when it was determined that no one could make any money off it.