diff --git a/README.md b/README.md
index 99f58e3..9787509 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,11 @@ So far, the demo contains:
- functional,
- strategy,
- CRTP.
+- UML (diagrams):
+ - functional,
+ - strategy,
+ - policies,
+ - CRTP.
The algorithm machinery itself is located within the `code.*` files
and is not of major interest,
diff --git a/UML/crtp.dia b/UML/crtp.dia
new file mode 100644
index 0000000..810f32a
Binary files /dev/null and b/UML/crtp.dia differ
diff --git a/UML/crtp.svg b/UML/crtp.svg
new file mode 100644
index 0000000..cd5098c
--- /dev/null
+++ b/UML/crtp.svg
@@ -0,0 +1,1414 @@
+
+
diff --git a/UML/functional.dia b/UML/functional.dia
new file mode 100644
index 0000000..5248414
Binary files /dev/null and b/UML/functional.dia differ
diff --git a/UML/functional.svg b/UML/functional.svg
new file mode 100644
index 0000000..2412b77
--- /dev/null
+++ b/UML/functional.svg
@@ -0,0 +1,1363 @@
+
+
diff --git a/UML/policies.dia b/UML/policies.dia
new file mode 100644
index 0000000..09a204e
Binary files /dev/null and b/UML/policies.dia differ
diff --git a/UML/policies.svg b/UML/policies.svg
new file mode 100644
index 0000000..c37fd74
--- /dev/null
+++ b/UML/policies.svg
@@ -0,0 +1,1031 @@
+
+
diff --git a/UML/strategy.dia b/UML/strategy.dia
new file mode 100644
index 0000000..0834947
Binary files /dev/null and b/UML/strategy.dia differ
diff --git a/UML/strategy.svg b/UML/strategy.svg
new file mode 100644
index 0000000..825e3c5
--- /dev/null
+++ b/UML/strategy.svg
@@ -0,0 +1,1282 @@
+
+