added browser compatibility support