location update: use replaceState instead of hash update to avoid duplicate history entries rename currTab -> view