Factored out CharacterNavigation code.