replaceState instead of pushState
MIT License