tighten up hashchange