separate transport from remote service
refactor transport pick to the factory method
Better exception name
rename the services factory configuration
improve the remote service spec