code: function(text, callback) {
      var maxAttempts = 5,
        attempts = 0,
  
        intersects = function(rect1, rect2) {
          return !(rect1.right < rect2.left ||
            rect1.left > rect2.right ||
            rect1.bottom < rect2.top ||
            rect1.top > rect2.bottom);
        },
  
        loop = function(text) {
          var intersecting = false,
            index = 0,
            bb,
            pbb,
            last;
          text.each(function() {
            if (index > 0) {
              bb = this.getBoundingClientRect();
              pbb = last.getBoundingClientRect();
              if (intersects(bb, pbb)) {
                callback.bind(this)(pbb, bb);
                intersecting = true;
              }
            }
            index++;
            last = this;
          });
  
          if (intersecting && attempts < maxAttempts) {
            attempts++;
            loop.bind(this)(text);
          }
        };
      loop.bind(this)(text);
    }
docs: FIXME: Provide this using DI.