Tested on most modern browsers, so we can resolve #2 and #3 in one fell swoop.