navigation now handled using hashcahnge events