added older browser compat and surcomventing Object.defineProperty overrite attempt