refactored navigation