@Override
    public T loadOneBySpecification(final Specification<T> specification) throws UnexpectedResultatSizeException {
        
        T satisfied = null;
        
        for (final T aggregate : aggregates.values()) {
            if (specification.isSatisfiedBy(aggregate)) {
                if (satisfied == null) {
                    satisfied = aggregate;
                } else {
                    throw new UnexpectedResultatSizeException("More then one " +
                            "aggregate satisfied by the given specification.");
                }
            }
        }
        
        return satisfied;
    }