diff --git a/docs/reference.rst b/docs/reference.rst
index 1074dad88a27df2333aa585ba24a91dd3d6b7685..a5cf4ea3fe2e9a1677fea9ed3fb65c85f5f13281 100644
--- a/docs/reference.rst
+++ b/docs/reference.rst
@@ -1,20 +1,14 @@
-CoolAMQP cluster reference
+CoolAMQP classes reference
 ==========================
 
+Cluster-related things
+----------------------
+
 .. autoclass:: coolamqp.clustering.Cluster
     :members:
 
 .. note:: If environment variable :code:`COOLAMQP_FORCE_SELECT_LISTENER` is defined, select will be used instead of epoll.
 
-Publisher
----------
-
-.. autoclass:: coolamqp.attaches.publisher.Publisher
-    :members:
-    :undoc-members:
-
-Consumers
----------
 
 .. autoclass:: coolamqp.attaches.consumer.BodyReceiveMode
     :members:
@@ -26,4 +20,22 @@ Consumers
 Please note that :meth:`coolamqp.clustering.Cluster.consume` passes lot of it's
 args and kwargs directly to the :class:`coolamqp.attaches.consumer.Consumer`.
 
+Extra objects
+-------------
+
+.. class:: coolamqp.objects.Message
+    :members:
+
+.. class:: coolamqp.objects.ReceivedMessage
+    :members:
+
+.. class:: coolamqp.objects.MessageProperties
+    :members:
+
+.. class:: coolamqp.objects.Queue
+    :members:
+
+.. class:: coolamqp.objects.Exchange
+    :members:
+
 
diff --git a/docs/tutorials.rst b/docs/tutorials.rst
index 20a876a46fa5e5ace98b209b50a451c3b8095756..ead10e0d3627dde0d2a92a446cab2447a3108f4e 100644
--- a/docs/tutorials.rst
+++ b/docs/tutorials.rst
@@ -103,4 +103,20 @@ And let's try to send something to this exchange:
     from coolamqp.objects import Message
     c.publish(Message(b'my bag of bytes'), exchange=xchg, confirm=True).result()
 
-And voila, we're done here!
\ No newline at end of file
+And voila, we're done here!
+
+Topic exchanges
+---------------
+
+Topic exchanges are a bit harder. Let's try them:
+
+
+.. code-block:: python
+
+    from coolamqp.cluster import Cluster
+    from coolamqp.objects import NodeDefinition, Exchange
+
+    nd = NodeDefinition('amqp://127.0.0.1:5672/vhost', user='test', password='test', heartbeat=30)
+    c = Cluster(nd)
+    c.start()
+    xchg = Exchange('my-exchange', type='topic')