add cross-browser support for some properties and add some useful helpers