cross browser compatibility fixes