added browser sniffing (inevitable)