nav abstraction