even better tracking on hashchange