added tab state persistence through url hash