improve polyfill