added more comprehensive polyfills for IE8