Refactor navigation service