///////////////////////
///   SUPER CLASS   ///
///////////////////////
///
var Super = function () {
    var self = this;
    self._handlers_ = {};
};

// Basic event system.
Super.prototype.on = function (arg, cb) {
    var self = this;
    var types = arg.split(/[ ,]+/g);
    var type;

    for (var i = 0; i < types.length; i += 1) {
        type = types[i];
        self._handlers_[type] = self._handlers_[type] || [];
        self._handlers_[type].push(cb);
    }
    return self;
};

Super.prototype.off = function (type, cb) {
    var self = this;
    if (type === undefined) {
        self._handlers_ = {};
    } else if (cb === undefined) {
        self._handlers_[type] = null;
    } else if (self._handlers_[type] &&
            self._handlers_[type].indexOf(cb) >= 0) {
        self._handlers_[type].splice(self._handlers_[type].indexOf(cb), 1);
    }
    return self;
};

Super.prototype.trigger = function (arg, data) {
    var self = this;
    var types = arg.split(/[ ,]+/g);
    var type;

    for (var i = 0; i < types.length; i += 1) {
        type = types[i];
        if (self._handlers_[type] && self._handlers_[type].length) {
            self._handlers_[type].forEach(function (handler) {
                handler.call(self, {
                    type: type,
                    target: self
                }, data);
            });
        }
    }
};

@@ -98,56 +98,8 @@
 () %7B
-%0A    var self = this;%0A    self._handlers_ = %7B%7D;%0A
 %7D;%0A%0A
@@ -226,32 +226,77 @@
 );%0A    var type;
+%0A    self._handlers_ = self._handlers_ %7C%7C %7B%7D;
 %0A%0A    for (var i
@@ -543,24 +543,70 @@
 elf = this;%0A
+    self._handlers_ = self._handlers_ %7C%7C %7B%7D;%0A%0A
     if (type
@@ -1022,32 +1022,32 @@
 plit(/%5B ,%5D+/g);%0A
-
     var type;%0A%0A 
@@ -1043,16 +1043,61 @@
 ar type;
+%0A    self._handlers_ = self._handlers_ %7C%7C %7B%7D;
 %0A%0A    fo

move internal declarations where needed