diff --git a/notes-en/ncd.md b/notes-en/ncd.md
index a0fe7bd..274c844 100644
--- a/notes-en/ncd.md
+++ b/notes-en/ncd.md
@@ -4,6 +4,8 @@ Normalized compression distance (NCD) is a way of measuring the similarity betwe
A [compression algorithm](https://en.wikipedia.org/wiki/Data_compression) looks for patterns and repetitions in the input sequence to compress it. For example, instead of "abababab" we can say "(ab)x4". This is how [RLE](https://en.wikipedia.org/wiki/Run-length_encoding) works and this is most simple and illustrative aexample of compression. Main idea of NCD is that a good compression algorithm compress concatenation of two sequences as good as they similar and much better than each sequence separately.
+This conception was presented in the [Clustering by Compression](https://homepages.cwi.nl/~paulv/papers/cluster.pdf) paper by [Rudi Cilibrasi](https://cilibrar.com/) and [Paul Vitanyi](https://en.wikipedia.org/wiki/Paul_Vit%C3%A1nyi).
+
## Calculation
$$NCD_{Z}(x,y)={\frac {Z(xy)-\min\\{Z(x),Z(y)\\}}{\max\\{Z(x),Z(y)\\}}}.$$
@@ -24,9 +26,18 @@ So, how it works:
Ok, but what is `Z`? This is the size of compressed data by normal compressor (`C`). Yeah, you can use any compression algorithm, but for non-normal compressors you will get strange and non-comparable results. So, there are these properties:
1. Idempotency: `C(xx) = C(x)`. Without it you wouldn't get 0 for the same sequences because `Z(xx) - Z(x) ≠ 0`.
-2. Monotonicity: `C(xy) ≥ C(x)`.
-3. Symmetry: `C(xy) = C(yx)`
-4. Distributivity: `C(xy) + C(z) ≤ C(xz) + C(yz)`
+2. Monotonicity: `C(xy) ≥ C(x)`. If you can find `C(xy) < C(x)` then `Z(xy) - min(Z(x), Z(y))` will be less than zero and all NCD will be less than zero.
+3. Symmetry: `C(xy) = C(yx)`. Without it `NCD(xy) ≠ NCD(yx)`. You can ignore this property if you change `Z(xy)` on `min(Z(xy), Z(yx))` in the formula.
+4. Distributivity: `C(xy) + C(z) ≤ C(xz) + C(yz)`. I'm not sure about this property. I guess, this shows that compression really works and make compressed data not larger than input sequence. Also, I think, there should be `Z` instead of `C` (as for "Symmetry" property). So, we can say it simpler: `Z(xy) ≤ Z(x) + Z(y)`.
+
+So, none of the real world compressors really works for NCD:
+
+1. Idempotency can't be satisfied without dropping out information that `x` sequence appears twice in the input data.
+1. Monotonicity can be broken by header information of compressed data.
+1. Symmetry also doesn't work for most of compressors because concatenation of sequences can make a new pattern. For example, for RLE `C("abb" + "bbc") = "ab4c"` and `C("bbc" + "abb") = "b2cab2"`.
+1. For any real compressor we will get discrete `Z` that equals to the size in bites of compressed data, but this discretization make more difficult to make difference between short sequences.
+
+So, what can we use? In the original paper authors used real compressors like `Zlib` because these properties approximately work for really big and quite random sequences. But can we do it better?
## Entropy