implement all abstraction of navigators