better browser detection