major navigator refactoring