code: function (target, name, func) {
          var self = this, i;
  
          if (Tools.isArray(target)) {
            i = target.length;
  
            while (i--) {
              target[i] = self.unbind(target[i], name, func);
            }
  
            return target;
          }
  
          // Remove any bound events matching the input
          if (self.boundEvents && (target === self.doc || target === self.win)) {
            i = self.boundEvents.length;
  
            while (i--) {
              var item = self.boundEvents[i];
  
              if (target == item[0] && (!name || name == item[1]) && (!func || func == item[2])) {
                this.events.unbind(item[0], item[1], item[2]);
              }
            }
          }
  
          return this.events.unbind(target, name, func);
        }
docs: Removes the specified event handler by name and function from an element or collection of elements.
  
  @method unbind
  @param {Element/Document/Window/Array} target Target element to unbind events on.
  @param {String} name Event handler name, for example: "click"
  @param {function} func Function to remove.
  @return {bool/Array} Bool state of true if the handler was removed, or an array of states if multiple input elements
  were passed in.