port localstorage functionality over to support browsers who aren't fortunate enough to have HTML5 capabilities