refactoring of navigation module