class ServiceWrapperChain implements ServiceWrapper {

    public <T> T invoke(Callable<T> c) throws Exception {
        for(ServiceWrapper wrapper : wrappers) {
            c = wrap(c, wrapper);
        }
        return c.call();
    }

    public  ServiceWrapperChain(Collection<ServiceWrapper> wrappers);

}