refactor navigationController and pageConroller to use containerController for better encapsulation