diff --git a/sys/Makefile b/sys/Makefile
index 9d63db742c4f4c5108e8b7cff43d02e15120a2c9..871f33f26c325af7352513d133ab0a0c0642ceb7 100644
--- a/sys/Makefile
+++ b/sys/Makefile
@@ -128,13 +128,13 @@ ifneq (,$(filter skald,$(USEMODULE)))
   DIRS += net/skald
 endif
 ifneq (,$(filter rdcli_common,$(USEMODULE)))
-  DIRS += net/application_layer/rdcli_common
+  DIRS += net/application_layer/cord/common
 endif
 ifneq (,$(filter rdcli_simple,$(USEMODULE)))
-    DIRS += net/application_layer/rdcli_simple
+    DIRS += net/application_layer/cord/epsim
 endif
 ifneq (,$(filter rdcli,$(USEMODULE)))
-    DIRS += net/application_layer/rdcli
+    DIRS += net/application_layer/cord/ep
 endif
 
 
diff --git a/sys/net/application_layer/rdcli_common/Makefile b/sys/net/application_layer/cord/common/Makefile
similarity index 59%
rename from sys/net/application_layer/rdcli_common/Makefile
rename to sys/net/application_layer/cord/common/Makefile
index 48422e909a47d7cd428d10fa73825060ccc8d8c2..6ac70df22bc47889895649c249a9fd9ca12427e0 100644
--- a/sys/net/application_layer/rdcli_common/Makefile
+++ b/sys/net/application_layer/cord/common/Makefile
@@ -1 +1,3 @@
+MODULE = rdcli_common
+
 include $(RIOTBASE)/Makefile.base
diff --git a/sys/net/application_layer/rdcli_common/rdcli_common.c b/sys/net/application_layer/cord/common/rdcli_common.c
similarity index 100%
rename from sys/net/application_layer/rdcli_common/rdcli_common.c
rename to sys/net/application_layer/cord/common/rdcli_common.c
diff --git a/sys/net/application_layer/cord/doc.txt b/sys/net/application_layer/cord/doc.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c136144d3aad83e2125937a175eaf5aaeefcba22
--- /dev/null
+++ b/sys/net/application_layer/cord/doc.txt
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2018 Freie Universität Berlin
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @defgroup    net_cord CoRE RD Endpoint and Lookup Client
+ * @ingroup     net
+ * @brief       Library for interacting as endpoint and lookup client with CoRE
+ *              Resource Directories
+ *
+ * # About
+ * The `cord` ([Co]RE [R]esource [D]irectory) module provides endpoint and
+ * lookup client functionality for interacting with CoRE Resource Directories
+ * (RDs) as defined in `draft-ietf-core-resource-directory-15`.
+ *
+ * @see https://tools.ietf.org/html/draft-ietf-core-resource-directory-15
+ *
+ * `draft-ietf-core-resource-directory-15` defines two types different roles for
+ * nodes when interacting with a RD:
+ * - `endpoint`: registers and manages entries at the RD
+ * - `client`: performs different kind of lookups
+ *
+ * ```
+ *               Registration     Lookup, Group
+ *               Interface        Interfaces
+ *   +----+          |                 |
+ *   | EP |----      |                 |
+ *   +----+    ----  |                 |
+ *                 --|-    +------+    |
+ *   +----+          | ----|      |    |     +--------+
+ *   | EP | ---------|-----|  RD  |----|-----| Client |
+ *   +----+          | ----|      |    |     +--------+
+ *                 --|-    +------+    |
+ *   +----+    ----  |                 |
+ *   | EP |----      |                 |
+ *   +----+
+ * ```
+ * Figure copied form `draft-ietf-core-resource-directory-15`.
+ *
+ * @note In the context of this module, we refer to these roles as `endpoint
+ *       (ep)` and `lookup client (lc)`. This should hopefully prevent some
+ *       confusion in conjunction with the `client` and `server` roles as
+ *       defined by CoAP.
+ *
+ * # Structure
+ *
+ * This module is structured in a number of submodules with goal to reflect the
+ * different roles described in `draft-ietf-core-resource-directory-15`:
+ *
+ * - `cord_ep`:     standard endpoint implementation following the rules as
+ *                  defined i.a. in sections 5.2, 5.3, A.1, and A.2
+ * - `cord_epsim`:  endpoint implementation following the simple registration
+ *                  procedure as defined in section 5.3.1
+ * - `cord_lc`:     lookup client implementation for querying information from
+ *                  an RD using the lookup and group interfaces (**NOT
+ *                  YET IMPLEMENTED**)
+ * - `cord_config`: header file collection (default) configuration values used
+ *                  throughout this module
+ * - `cord_common`: shared functionality used by the above submodules
+ *
+ */
diff --git a/sys/net/application_layer/rdcli/Makefile b/sys/net/application_layer/cord/ep/Makefile
similarity index 89%
rename from sys/net/application_layer/rdcli/Makefile
rename to sys/net/application_layer/cord/ep/Makefile
index 3b2e7e88b2c7863e573a6540af83ffafe93aedcb..885829de201a766acb4b771fbd88aa9c1a814053 100644
--- a/sys/net/application_layer/rdcli/Makefile
+++ b/sys/net/application_layer/cord/ep/Makefile
@@ -1,3 +1,5 @@
+MODULE = rdcli
+
 SRC = rdcli.c
 
 ifneq (,$(filter rdcli_standalone,$(USEMODULE)))
diff --git a/sys/net/application_layer/rdcli/rdcli.c b/sys/net/application_layer/cord/ep/rdcli.c
similarity index 100%
rename from sys/net/application_layer/rdcli/rdcli.c
rename to sys/net/application_layer/cord/ep/rdcli.c
diff --git a/sys/net/application_layer/rdcli/rdcli_standalone.c b/sys/net/application_layer/cord/ep/rdcli_standalone.c
similarity index 100%
rename from sys/net/application_layer/rdcli/rdcli_standalone.c
rename to sys/net/application_layer/cord/ep/rdcli_standalone.c
diff --git a/sys/net/application_layer/rdcli_simple/Makefile b/sys/net/application_layer/cord/epsim/Makefile
similarity index 87%
rename from sys/net/application_layer/rdcli_simple/Makefile
rename to sys/net/application_layer/cord/epsim/Makefile
index 997bf2fc8045f3a44e422ea43e69a36811539e1e..db17736b3c4a0d2d27a4c1c5a5a4fe5aa4cf7d5d 100644
--- a/sys/net/application_layer/rdcli_simple/Makefile
+++ b/sys/net/application_layer/cord/epsim/Makefile
@@ -1,3 +1,5 @@
+MODULE = rdcli_simple
+
 SRC = rdcli_simple.c
 
 ifneq (,$(filter rdcli_simple_standalone,$(USEMODULE)))
diff --git a/sys/net/application_layer/rdcli_simple/rdcli_simple.c b/sys/net/application_layer/cord/epsim/rdcli_simple.c
similarity index 100%
rename from sys/net/application_layer/rdcli_simple/rdcli_simple.c
rename to sys/net/application_layer/cord/epsim/rdcli_simple.c
diff --git a/sys/net/application_layer/rdcli_simple/rdcli_simple_standalone.c b/sys/net/application_layer/cord/epsim/rdcli_simple_standalone.c
similarity index 100%
rename from sys/net/application_layer/rdcli_simple/rdcli_simple_standalone.c
rename to sys/net/application_layer/cord/epsim/rdcli_simple_standalone.c