added new directive for redundant code
refactor navigation to use directive navigation for reduce redundant code