refactoring navigation