# 8 The Extension class

The C++ class `OZ_Extension` allows for an easy integration of new built-in data types into the Oz VM.

To add a new data type a native module must be implemented which contains (1) a subclass of `OZ_Extension` (see below) and (2) built-in procedures implementing the operation on the new type.

If you want to implement situated extension, i.e. data types which are situated in computation spaces and need to be copied you should subclass `OZ_SituatedExtension` with has the same interface as `OZ_Extension`.

In Section 8.1 you find the reference documentation and in Section 8.2 an example.

## 8.1 Reference