diff --git a/modules/README.rst b/modules/README.rst
index a8da3c50a6f5317317db475b4a863a4c9b662640..a39f7a593c5c26767e6a21f3bf3f95626f67caa1 100644
--- a/modules/README.rst
+++ b/modules/README.rst
@@ -139,8 +139,21 @@ The modules follow the `Lua way <http://lua-users.org/wiki/ModuleDefinition>`_,
 
 	return counter
 
-.. tip:: The API functions may return an integer value just like in other languages, but they may also return a coroutine that will be continued asynchronously. A good use case for this approach is is a deferred initialization,
-e.g. loading a chunks of data or waiting for I/O.
+.. tip:: The API functions may return an integer value just like in other languages, but they may also return a coroutine that will be continued asynchronously. A good use case for this approach is is a deferred initialization, e.g. loading a chunks of data or waiting for I/O.
+
+.. code-block:: lua
+
+	function counter.init(module)
+		counter.total = 0
+		counter.last = 0
+		counter.failed = 0
+		return coroutine.create(function ()
+			for line in io.lines('/etc/hosts') do
+				load(module, line)
+				coroutine.yield()
+			end
+		end)
+	end
 
 The created module can be then loaded just like any other module, except it isn't very useful since it
 doesn't provide any layer to capture events. The Lua module can however provide a processing layer, just