diff --git a/ebpfcat/arraymap.py b/ebpfcat/arraymap.py
index 226716d4f4ba44f371520740d0eabb44d38a82ac..a99d44e0d3384bed917008860d34d6b5be86dc29 100644
--- a/ebpfcat/arraymap.py
+++ b/ebpfcat/arraymap.py
@@ -15,6 +15,11 @@
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
+"""The ``arraymap`` module defines array maps, usually used for global
+variables in EBPF programs"""
+
+__all__ = ["ArrayMap"]
+
 from itertools import chain
 from mmap import mmap
 from struct import pack_into, unpack_from, calcsize
diff --git a/ebpfcat/ebpf.py b/ebpfcat/ebpf.py
index ab721016b88f5f24d40375eade9aad7f3304aacd..25b901912557ba854560acaa461cba59e6696acd 100644
--- a/ebpfcat/ebpf.py
+++ b/ebpfcat/ebpf.py
@@ -15,6 +15,10 @@
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
+"""The ``ebpf`` module contains the core ebpf code generation"""
+
+__all__ = ["EBPF", "LocalVar", "prandom", "ktime"]
+
 from abc import ABC, abstractmethod
 from collections import namedtuple
 from contextlib import contextmanager, ExitStack
diff --git a/ebpfcat/ebpf.rst b/ebpfcat/ebpf.rst
index 20681c0b08e0d15143fce26263f332d10b3df210..2e65851c9fd64f670fd2fcf9abc9eb6b0455262e 100644
--- a/ebpfcat/ebpf.rst
+++ b/ebpfcat/ebpf.rst
@@ -251,3 +251,15 @@ floor divisions ``//`` result in a standard integer. Some examples::
             self.normal_var = self.fixed_var  # automatically truncated
             self.fixed_var = self.normal_var / 5  # keep decimals
             self.fixed_var = self.normal_var // 5  # floor division
+
+Reference Documentation
+-----------------------
+
+.. automodule:: ebpfcat.ebpf
+   :members:
+
+.. automodule:: ebpfcat.xdp
+   :members:
+
+.. automodule:: ebpfcat.arraymap
+   :members:
diff --git a/ebpfcat/xdp.py b/ebpfcat/xdp.py
index d38fe93ee4514386c737fbbcb80d225890dbe860..2f6135d6470d83d04aa4b0f310979c08d466587d 100644
--- a/ebpfcat/xdp.py
+++ b/ebpfcat/xdp.py
@@ -16,6 +16,9 @@
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 """support for XDP programs"""
+
+__all__ = ["XDPExitCode", "XDPFlags", "PacketVar",  "XDP"]
+
 from asyncio import DatagramProtocol, Future, get_event_loop
 from enum import Enum
 from contextlib import asynccontextmanager, contextmanager