| Interface | Description | 
|---|---|
| ModelChangeEvent | A model change event is an event which changes the model as given in a  HeapContentinstance. | 
| ModelEditor | The model editor interface allows to execute  ModelChangeEventinstances and keep track of the events
 which have been executed so far. | 
| Class | Description | 
|---|---|
| AbstractListeners | |
| AbstractListeners.DualArgumentListener | Listener which takes two arguments. | 
| AbstractListeners.NoArgumentListener | Listener which takes no arguments. | 
| AbstractListeners.SingleArgumentListener | Listener which takes a single argument. | 
| FieldRemovingListener | Listener to allow removing a field from a parent. | 
| FieldRenamingListener | Listener to rename a single field of some ObjectValue instance. | 
| FieldSwappingListener | Listener to swap two fields. | 
| ModelChangeEvents | Contains various implementations of  ModelChangeEventevents. | 
| ModelChangeEvents.CompositeChangeEvent | Event with which multiple events can be "atomized" to appear as a single event
 and be executed and undone as one unit. | 
| ModelChangeEvents.InsertValueToFieldEvent | Event where a new value is inserted as a field of an existing value. | 
| ModelChangeEvents.InsertValueToVariableEvent | Event where a new value is inserted as the new value of an existing variable. | 
| ModelChangeEvents.RemoveFieldEvent | Event that removes a given field from a given parent. | 
| ModelChangeEvents.RemoveValueEvent | Event that removes a value entirely, removing it from all
 its parents as a field and also removing any variables with the value
 as their value. | 
| ModelChangeEvents.RenameFieldEvent | Event that renames a given field and gives it another name. | 
| ModelChangeEvents.RenameVariableEvent | Event that renames a variable. | 
| ModelChangeEvents.SetFieldEvent | Event that sets a given parent's field to a given value. | 
| ModelChangeEvents.SwapFieldEvent | Event to swap two fields with given names in some value. | 
| ModelChangeEvents.SwapValuesEvent | Event that swaps two values completely, meaning all their fields/parents/variables | 
| ModelChangingGUI | |
| ModelEditingListener | Listener to initialize the model editor when beta features are enabled. | 
| NullInsertingListener | Listener which inserts null to multiple values + fields/variables. | 
| SelectionListener<T> | Listener which allows selecting node values with left mouse clicks, and returns
 a set of the selected values when requested. | 
| SubtreeMovingListener | Listener which allows to move a subtree from one value/variable to another value/variable. | 
| Util | |
| ValueCopyingListener | Listener which copies a value and inserts it at another value. | 
| ValueInsertingGUI | GUI to allow inserting a value within an existing HeapContent and then updating
 the variables and values. | 
| ValueInsertingListener | Listener which allows to create a new value and insert it somewhere in the current
 graph content. | 
| ValueRemovingListener | Listener to completely remove a value from the model, by removing it from all its
 parents to ensure it is not reachable anymore. | 
| ValueSwappingListener | Listener which allows dragging one value on top of another to swap the two values. | 
| VariableRenamingListener | Listener which allows to rename a variable by right-clicking it. |