Some cleanup -- now using getBoundingClientRect() for positioning (which works with SVG among other things)