generalize navigation initialization