update navigation API to use method chaining style