class ProcessManagerWrapper implements ProcessManager<R> {

    @Override public Map<UUID, List<UUID>> start(List<R> specifications) {
        List<T> transformedSpecifications = new ArrayList<>();

        for (R spec : specifications)
            transformedSpecifications.add(transformSpecification(spec));

        return delegate.start(transformedSpecifications);
    }

    public  ProcessManagerWrapper(ProcessManager<T> delegate);

}