diff --git a/README.md b/README.md
index 9f7cbed421a1bd39a900d25c1f8bc14e82444711..d66dcda5832633b640196979caf3d688f00f8bf9 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ Inspired by a naive udp-forward. I want to test what would happen, if I change t
 
 ## Design
 
-![explain.png](https://raw.githubusercontent.com/recolic/udp_forwarder_ng/master/res/explain.png)
+![explain.png](https://raw.githubusercontent.com/recolic/udp-forwarder-ex/master/res/explain.png)
 
 ## Build
 
@@ -20,7 +20,25 @@ cmake .. && make
 ./udp-forwarder [args ...]
 ```
 
+## Example
+
+```
+# Assume OpenVPN listens base.tw7.recolic.net:1194/UDP
+# We run UDPFwd on server:
+./udp-forwarder -i plain@0.0.0.0@443 -o plain@::1@1194 --filter reverse@aes@MyPassword
+
+# Then we run UDPFwd on our home router, to provide OpenVPN service:
+./udp-forwarder -i plain@0.0.0.0@1194 -o plain@base.tw7.recolic.net@1194 --filter aes@MyPassword
+# Good! You can use RouterIP:1194 as your OpenVPN server address now! It will work.
+```
+
+## TODOs
+
+dynport module (-i / -o dynport@fe80:1111::1@10000-11000)
+
+obfs method (quic and wechat video) (--filter obfs@quic@some.video.host.apple.com) (--filter obfs@wechat-video)
+
 ## Common Deployment
 
-![solu.png](https://raw.githubusercontent.com/recolic/udp_forwarder_ng/master/res/solu.png)
+![solu.png](https://raw.githubusercontent.com/recolic/udp-forwarder-ex/master/res/solu.png)
 
diff --git a/res/explain.png b/res/explain.png
new file mode 100644
index 0000000000000000000000000000000000000000..e00cb126ff77bbe8f0203e7494f041f574d3633b
Binary files /dev/null and b/res/explain.png differ
diff --git a/res/solu.png b/res/solu.png
new file mode 100644
index 0000000000000000000000000000000000000000..b251750fc65fd36faebf40da7bd12e260c4846ed
Binary files /dev/null and b/res/solu.png differ