smooth navigation refactoring