refactoring routing provider to provide testing and support #113