generalize nav controller