added platform and browser detection, fallback
merge