implemented browser detection