  
  // --------------------------------------------------
  // Events (imp.)
  // --------------------------------------------------

  Dom.prototype.ready = function (fn) {
    this.each(function (el) {
      el.onreadystatechange = function () {
        if (el.readyState = "complete") {
          fn();
        }
      };
    });
  };

  impEvts = [
    "blur",
    "click",
    "change",
    "dblclick",
    "drag",
    "dragstart",
    "dragend",
    "dragenter",
    "dragleave",
    "dragover",
    "drop",
    "error",
    "focus",
    "keyup",
    "keydown",
    "keypress",
    "load",
    "mousedown",
    "mouseleave",
    "mouseenter",
    "mouseover",
    "mousemove",
    "mouseout",
    "ready",
    "submit"
  ];

  for (_i = 0; _i < impEvts.length; _i += 1) {
    Dom.prototype[impEvts[_i]] = function (fn) {
      this.on(impEvts[_i], fn);
    };
  }
  
  // --------------------------------------------------
  // Events (imp.)
  // --------------------------------------------------

  Dom.prototype.ready = function (fn) {
    this.each(function (el) {
      el.onreadystatechange = function () {
        if (el.readyState = "complete") {
          fn();
        }
      };
    });
  };

  impEvts = [
    "blur",
    "click",
    "change",
    "dblclick",
    "drag",
    "dragstart",
    "dragend",
    "dragenter",
    "dragleave",
    "dragover",
    "drop",
    "error",
    "focus",
    "keyup",
    "keydown",
    "keypress",
    "load",
    "mousedown",
    "mouseleave",
    "mouseenter",
    "mouseover",
    "mousemove",
    "mouseout",
    "ready",
    "submit"
  ];

  for (_i = 0; _i < impEvts.length; _i += 1) {
    Dom.prototype[impEvts[_i]] = function (fn) {
      if (typeof fn === "function") {
        return this.on(impEvts[_i], fn);
      }

      return this.fire(impEvts[_i]);
    };
  }
Fix simple events