class ChangeLoggingKeyValueStore extends WrappedStateStore.AbstractStateStore implements KeyValueStore<K, V> {

    @Override
    public V delete(final K key) {
        final byte[] oldValue = innerBytes.delete(Bytes.wrap(serdes.rawKey(key)));
        if (oldValue == null) {
            return null;
        }
        return serdes.valueFrom(oldValue);
    }

      ChangeLoggingKeyValueStore(final KeyValueStore<Bytes, byte[]> bytesStore,
                               final Serde keySerde,
                               final Serde valueSerde);
    private  ChangeLoggingKeyValueStore(final ChangeLoggingKeyValueBytesStore bytesStore,
                                       final Serde keySerde,
                                       final Serde valueSerde);

}