add browser compatibility and functional test