major improvement on hashChange.