IE8 Compatibility

Now this works in IE8! I'll leave this open for a couple days for review.