add navigable map and navigable set. improve hash map performance