work on generalizing NavController