added a bunch more features and got cross browser stuff going