nav abstraction done