refactor and setting navigation