update routing + pushState