less shitty pushstate