diff --git a/README.md b/README.md
index c07e6eec7f5f1b47d1759e7dcdd735c4b42f145f..e89a86d3a25fcf98473169cbb77f29cb22f66679 100644
--- a/README.md
+++ b/README.md
@@ -12,12 +12,16 @@ General Public License v3 or higher.
 Using the invoker
 --
 
+![Using the Invoker](docs/invoker.png "Using the Invoker")
+
 The [Invoker](src/HAB/Solr/Command/Search.php) reads the query parameters from the [Command](src/HAB/Solr/Command/Search.php), 
 optionally merges them with static or dynamic default parameters, and communicates with the Solr backend using a
 [Guzzle](http://guzzlephp.org) HTTP client.
 
 The body of the Solr response is passed to [Command](src/HAB/Solr/Command/Search.php).
 
+
+
 Using the search command
 --
 
diff --git a/docs/invoker.png b/docs/invoker.png
new file mode 100644
index 0000000000000000000000000000000000000000..876af7c128c67800a2421b5b419b37f8b0b57fb8
Binary files /dev/null and b/docs/invoker.png differ
diff --git a/docs/invoker.uml b/docs/invoker.uml
new file mode 100644
index 0000000000000000000000000000000000000000..aaefa5dd471a6da4d8497f64e3d9a1010a81a48d
--- /dev/null
+++ b/docs/invoker.uml
@@ -0,0 +1,15 @@
+@startuml
+
+Controller -> Invoker : invoke()
+
+Invoker -> Command : getParameters()
+Invoker <- Command : [ParamBag]
+
+Invoker --> Solr : HTTP Request
+Invoker <-- Solr : HTTP Response
+
+Invoker -> Command : setResponse()
+
+Controller <- Command : getResult()
+
+@enduml