diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1220ae911a7b5cd638a8418bde6f1b365f3e676b..4b62aed6006e1e62167e0c60a136cbc074003e20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,9 @@
 * Removed all references to `sudo`. If `sudo` needs to be used, it should be done manually.
 * Fixed issue with module name checking which caused modules to fail to build on certain linux distributions
 
+## Other changes
+* Removed `require` as a submodule and merged it into `e3-require`.
+
 # 3.3.0
 
 3.3.0 is a relatively major release with many bugfixes and a number of features added based on consultation
diff --git a/README.md b/README.md
index 704f83602b512f04d26dbe2e6f86bc9f8d259ce5..4570fc5bfdd9f2945cb56a643f068fd0c1c1a5f5 100644
--- a/README.md
+++ b/README.md
@@ -1,103 +1,47 @@
 # e3-require
 
+The e3 version of `require` based on the PSI version of (`require`)[https://github.com/paulscherrerinstitute/require].
+There are significant diferences between the two modules, significant enough that it is not proper to call it a fork
+any longer.
 
-## Setup
+At its heart, `require` performs:
+* Dynamic loading of EPICS modules and rudimentary dependency resolution
+* Loading of IOCs using a custom startup script calling `softIocPVA`
+* Building of EPICS modules into standardized packages
 
-```
-e3-require (master)$ make init
-e3-require (master)$ make vars
-e3-require (master)$ make build
-e3-require (master)$ make install
-```
+For more documentation on this, please see (e3.pages)[http://e3.pages.esss.lu.se/design/2_require.html].
 
-## Update shell environment
-```
-e3-require (master)$ make requireconf
-```
+## Structural differences between PSI require and ESS require
 
-## Execute iocsh.bash
+The main differences between the two is that ESS `require` includes a number of configuration files defining special
+build targets for EPICS modules. For example, the following targets are defined.
+* `make build` - Runs the custom build process defined in `require`.
+* `make vars` - Displays a number of custom build variables e.g. install locations, etc.
+* `make debug` - Runs a debug build process, displaying information about the current build
+* `make cellinstall` - Installs the module in a local directory, e.g. for testing purposes
 
+For more special rules, look at the files in [configure/modules].
 
-```
- e3-require (master)$ source tools/setE3Env.bash 
-
-Set the ESS EPICS Environment as follows:
-THIS Source NAME    : setE3Env.bash
-THIS Source PATH    : /home/jhlee/e3/e3-require/tools
-EPICS_BASE          : /epics/base-3.15.5
-EPICS_HOST_ARCH     : linux-x86_64
-E3_REQUIRE_LOCATION : /epics/base-3.15.5/require/3.0.0
-PATH                : /epics/base-3.15.5/require/3.0.0/bin:/epics/base-3.15.5/bin/linux-x86_64:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/jhlee/bin
-LD_LIBRARY_PATH     : /epics/base-3.15.5/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/siteLibs/linux-x86_64
-
-Enjoy E3!
-
-jhlee@faiserver: e3-require (master)$ iocsh.bash 
-#
-# Start at "2018-W35-Aug28-0012-23-CEST"
-#
-# Version information:
-# European Spallation Source ERIC : iocsh.bash (v0.3.1-6690f8a.PID-9225)
-#
-# --->--> snip -->--> 
-# Please Use Version and other environment variables
-# in order to report or debug this shell
-#
-# HOSTDISPLAY=""
-# WINDOWID="54535878"
-# PWD="/home/jhlee/e3/e3-require"
-# USER="jhlee"
-# LOGNAME="jhlee"
-# EPICS_HOST_ARCH="linux-x86_64"
-# EPICS_BASE="/epics/base-3.15.5"
-# E3_REQUIRE_NAME="require"
-# E3_REQUIRE_VERSION="3.0.0"
-# E3_REQUIRE_LOCATION="/epics/base-3.15.5/require/3.0.0"
-# E3_REQUIRE_BIN="/epics/base-3.15.5/require/3.0.0/bin"
-# E3_REQUIRE_DB="/epics/base-3.15.5/require/3.0.0/db"
-# E3_REQUIRE_DBD="/epics/base-3.15.5/require/3.0.0/dbd"
-# E3_REQUIRE_INC="/epics/base-3.15.5/require/3.0.0/include"
-# E3_REQUIRE_LIB="/epics/base-3.15.5/require/3.0.0/lib"
-# E3_SITEAPPS_PATH="/epics/base-3.15.5/require/3.0.0/siteApps"
-# E3_SITELIBS_PATH="/epics/base-3.15.5/require/3.0.0/siteLibs"
-# E3_SITEMODS_PATH="/epics/base-3.15.5/require/3.0.0/siteMods"
-# EPICS_DRIVER_PATH="/epics/base-3.15.5/require/3.0.0/siteMods"
-# EPICS_CA_AUTO_ADDR_LIST="no"
-# EPICS_CA_ADDR_LIST="10.0.6.172 10.0.6.60"
-# PATH="/epics/base-3.15.5/require/3.0.0/bin:/epics/base-3.15.5/bin/linux-x86_64:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/jhlee/bin"
-# LD_LIBRARY_PATH="/epics/base-3.15.5/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/siteLibs/linux-x86_64"
-# --->--> snip -->--> 
-#
-# Set REQUIRE_IOC for its internal PVs
-epicsEnvSet REQUIRE_IOC "E3R:FAISERVER"
-#
-# Set E3_IOCSH_TOP for the absolute path where iocsh.bash is executed.
-epicsEnvSet E3_IOCSH_TOP "/home/jhlee/e3/e3-require"
-#
-# 
-# Load require module, which has the version 3.0.0
-# 
-dlload /epics/base-3.15.5/require/3.0.0/lib/linux-x86_64/librequire.so
-dbLoadDatabase /epics/base-3.15.5/require/3.0.0/dbd/require.dbd
-require_registerRecordDeviceDriver
-Loading module info records for require
-# 
-# Set the IOC Prompt String One 
-epicsEnvSet IOCSH_PS1 "6690f8a.faiserver.9240 > "
-#
-# 
-iocInit
-Starting iocInit
-############################################################################
-## EPICS R3.15.5-E3-3.15.5-patch
-## EPICS Base built Aug 27 2018
-############################################################################
-iocRun: All initialization complete
-6690f8a.faiserver.9240 > 
+The main parts that we have taken from PSI `require` are `require.c` and `driver.makefile`, which respectively
+load modules dynamically at run-time, and which run the custom build process. However, both of these have been
+modified significantly for the purposes of e3.
 
+Furthermore, we have added the custom startup script `iocsh.bash` which sets up the IOC's environment before
+running `softIocPVA` from EPICS base.
 
+## Building `require`
 
+In order to build require, you must first have EPICS base installed. After that, you must configure `CONFIG_MODULE`
+and `RELEASE` to specify the require version and the location of EPICS base. Having done so, run
+```bash
+$ make build
+$ make install
 ```
 
+To test your build, run
+```bash
+$ source ${EPICS_BASE}/require/${E3_REQUIRE_VERSION}/bin/setE3Env.bash
+$ iocsh.bash
+```
 
-## TODO
+which should start up an IOC and load require.