crossbrowsers and mobile compatibility fixes