HashClass
HashClass is a strict version of the Hash, implemented as a Class. So you can subclass it and Extend it. NOTE: Only supports accessing or setting data with methods. You can't use normal JS Object property access.
ObservableData
ObservableData is just a bunch of methods that you can implement on your own classes that provide a standard interface to Observable classes.
ObservableHash
ObservableHash, extends HashClass, implementing the ObservableData interface.
This allows you to addEvents to the ObservableHash instance to observe when events fire for set() and get()