extracted more interfaces to increase testability and created PageNavigator relative URL specs for issue #22 fix