diff --git a/README.md b/README.md
index 73cd44c1742d41c413feb347c006f1039987892c..865876b3016ce840c8876ae1950ef7302c0f3fc3 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ The central part of the library is the *Cone* class. During initialization you c
 // contra::Relay to the constructor or by using one of the utility function
 // provided by Cone. For a full list of this function see the API documentation
 // below.
-auto cone = cone::ConnectViaSharedMemory();
+auto cone = cone::ConnectUsingConfigurationFile("path_to_config_file.json");
 
 // 2.2 Set up callback functions
 // Again, see the API description below for a full list of callback functions.
@@ -51,6 +51,17 @@ Cone ConnectViaSharedMemory(
 );
 ```
 
+### Configuration file
+This is the most flexible approach to establishing a connection. The connection
+details are stored in a json file at a specified path. It handles all the
+previously mentioned cases.
+```c++
+Cone ConnectUsingConfigurationFile(
+  const std::string& filename
+);
+```
+Have a look at the files in the folder `example_configurations`.
+
 ## Callback functions
 All setter methods for the callback functions accept an `std::function` so you can pass raw function pointer, lambdas, etc. The data passed to the callbacks is usually an instance of contuit view defined in `nesci::consumer`. For more information look at the [documentation of nesci](https://devhub.vr.rwth-aachen.de/VR-Group/nesci#consumer).