class GuiceProbeProvider {

    @SuppressWarnings("unchecked")
    public <T extends GuiceProbe> T getProbe(Class<T> clazz) {
        Preconditions.checkNotNull(clazz);
        return Optional.ofNullable(registry.get(clazz))
            .map(probe -> (T) probe)
            .orElseThrow(() -> new RuntimeException("No probe registered for class: " + clazz));
    }

    @SuppressWarnings("unchecked") @Inject public  GuiceProbeProvider(Set<GuiceProbe> guiceProbes);

}