@Override
    public <T extends AggregateRoot<?>> T loadOneBy(final Class<T> aggregateRoot, final Specification<T> specification) {
        
        @SuppressWarnings("unchecked")
        final DomainRepositoryDriver<T, ?> driver = (DomainRepositoryDriver<T, ?>) drivers.get(aggregateRoot);
        
        if (driver == null) {
            throw new RuntimeException("Can't find any driver for the given aggregate: " + aggregateRoot);
        }
        
        return driver.loadOneBySpecification(specification);
    }