diff --git a/pythonetc/README.md b/pythonetc/README.md
index c95e925..6d62f77 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -93,6 +93,8 @@ More:
1. ./eval-order.md
1. ./key-error.md
1. ./dedent.md
+1. ./immutable.md
+1. ./sqlite3.md
Out of order:
@@ -112,8 +114,6 @@ Unicode module
String.Template
String module consts
Urllib
-types.MappingProxyType
-frozenset
https://bugs.python.org/issue36326
str[0][0][0]
https://www.python.org/downloads/release/python-3100a4/
diff --git a/pythonetc/immutable.md b/pythonetc/immutable.md
new file mode 100644
index 0000000..b05b45a
--- /dev/null
+++ b/pythonetc/immutable.md
@@ -0,0 +1,33 @@
+If any function can modify any passed argument, how to prevent a value from modification? Make it immutable! That means the object doesn't have methods to modify it in place, only methods returning a new value. This is how numbers and `str` are immutable. While `list` has `append` method that modifies the object in place, `str` just doesn't have anything like this, all modifications return a new `str`:
+
+```python
+a = b = 'ab'
+a is b # True
+b += 'cd'
+a is b # False
+```
+
+This is why every built-in collection has an immutable version:
+
++ Immutable `list` is `tuple`.
++ Immutable `set` is `frozenset`.
++ Immutable `bytearray` is `bytes`.
++ `dict` doesn't have an immutable version but since Python 3.3 it has `types.MappingProxyType` wrapper that makes it immutable:
+
+```python
+from types import MappingProxyType
+
+orig = {1: 2}
+immut = MappingProxyType(orig)
+
+immut[3] = 4
+# TypeError: 'mappingproxy' object does not support item assignment
+```
+
+And since it is just a proxy, not a new type, it reflects all the changes in the original mapping:
+
+```python
+orig[3] = 4
+immut[3]
+# 4
+```
diff --git a/pythonetc/sqlite3.md b/pythonetc/sqlite3.md
new file mode 100644
index 0000000..d852037
--- /dev/null
+++ b/pythonetc/sqlite3.md
@@ -0,0 +1,12 @@
+Python has a built-in module [sqlite3](https://docs.python.org/3/library/sqlite3.html) to work with [SQLite](https://sqlite.org/index.html) database.
+
+```python
+import sqlite3
+conn = sqlite3.connect(':memory:')
+cur = conn.cursor()
+cur.execute('SELECT UPPER(?)', ('hello, @pythonetc!',))
+cur.fetchone()
+# ('HELLO, @PYTHONETC!',)
+```
+
+Fun fact: for explanation what is [SQL Injection](https://en.wikipedia.org/wiki/SQL_injection) the documentation links [xkcd about Bobby tables](https://xkcd.com/327/) instead of some smart article or Wikipedia page.