code: public LinkedHashMap<K, V> unwrapOptionals() {
  		final LinkedHashMap<K, V> unwrapped = new LinkedHashMap<>(underlyingMap.size());
  
  		for (Entry<String, KeyValue<K, V>> entry : underlyingMap.entrySet()) {
  			String namedKey = entry.getKey();
  			KeyValue<K, V> kv = entry.getValue();
  			if (kv.key == null) {
  				throw new IllegalStateException("Missing key '" + namedKey + "'");
  			}
  			if (kv.value == null) {
  				throw new IllegalStateException("Missing value for the key '" + namedKey + "'");
  			}
  			unwrapped.put(kv.key, kv.value);
  		}
  		return unwrapped;
  	}
docs: Assuming all the entries of this map are present (keys and values) this method would return
  a map with these key and values, stripped from their Optional wrappers.
  NOTE: please note that if any of the key or values are absent this method would throw an {@link IllegalStateException}.