don't hijack history.pushState; move changeState to morphUrl