code: function (event, callback) {
              // (To learn how the handlers object works, see inline comment at Crafty.bind)
              this.each(function () {
                  var hdl = handlers[event], i = 0, l, current;
                  //if no events, cancel
                  if (hdl && hdl[this[0]]) l = hdl[this[0]].length;
                  else return this;
  
                  //if no function, delete all
                  if (!callback) {
                      delete hdl[this[0]];
                      return this;
                  }
                  //look for a match if the function is passed
                  for (; i < l; i++) {
                      current = hdl[this[0]];
                      if (current[i] == callback) {
                          current.splice(i, 1);
                          i--;
                      }
                  }
              });
  
              return this;
          }
docs: @
  #.unbind
  @comp Crafty Core
  @sign public this .unbind(String eventName[, Function callback])
  @param eventName - Name of the event to unbind
  @param callback - Function to unbind
  Removes binding with an event from current entity.
  
  Passing an event name will remove all events bound to
  that event. Passing a reference to the callback will
  unbind only that callback.
  @see .bind, .trigger