By creating the router instance as a part of the service allocation process, we are guaranteed that either the creation of the service is completely successful or it fails. This should make runtime creation of services easier.