navigator refactoring