incorporating hashchange