Huge navigation refactoring