Add callback, wrap object, event emitter. To be cleaned.
Add wrap object, and object inheritence in JS.