@Override
  public <T> T getExtension(final @NotNull Key<T> key) {
    //noinspection unchecked
    return (T)myExtensions.get(key);
  }
@Override
  public <T> T getExtension(final @NotNull Key<T> key)