refactoring navagation