class ServiceHost implements ServiceRequestSender {

    protected void startCoreServicesSynchronously(Service... services) throws Throwable {
        List<Operation> posts = new ArrayList<>();
        for (Service s : services) {
            URI u = null;
            if (ReflectionUtils.hasField(s.getClass(), UriUtils.FIELD_NAME_SELF_LINK)) {
                u = UriUtils.buildUri(this, s.getClass());
            } else if (s instanceof FactoryService) {
                u = UriUtils.buildFactoryUri(this,
                        ((FactoryService) s).createServiceInstance().getClass());
            } else {
                throw new IllegalStateException("field SELF_LINK or FACTORY_LINK is required");
            }
            Operation startPost = Operation.createPost(u);
            posts.add(startPost);
        }
        startCoreServicesSynchronously(posts, Arrays.asList(services));
    }

    protected  ServiceHost();

}