separate logic by browser