added has and doing browser sniffing