diff --git a/README.md b/README.md
index 20e7cf94c3c376e8d766f45d1867653c6277fa4a..83ed9e47bd334f36de3fea5f842c3c9dc685d251 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
      - [ Neighbour Ordering Convention. ](#noc)
      - [ Inexistent Neighbour Convention. ](#inc)
    - [ MatrixElementCalculator. ](#mec)
-   - [ Rk4Stepper ](#rk4s)
+   - [ Rk4Stepper. ](#rk4s)
 
 
 
@@ -279,6 +279,9 @@ the individual functions correctly to accomodate the correct neighbours.
      - `get_parameters()`
      - `get_variables()`
 
+<a name="rk4b"></a>
+### `RK4Buffer` (rk4_buffer.hpp), holds Rk4Stepper intermediate results
+
 <a name="rk4s"></a>
 ### `Rk4Stepper` (rk4_stepper.hpp), performs timesteps using rk4 scheme
 1. Template arguments
@@ -294,3 +297,24 @@ the individual functions correctly to accomodate the correct neighbours.
      - All of the above perform one step of a timestep, between successive steps certain
      other updates need to be taken care of.
      - Arguments: Force functional, Drum vector, Adjacency vector, time step, start time of current step
+
+### `SystemParameters` (system_parameters.hpp), holds system parameters
+1. Template arguments
+   - `coupler_t`: Coupler type
+   - `driver_t`: Driver type
+2. Public data members
+   - `coupler`: The coupler_t object of the system
+   - `driver`: The driver_t object of the system
+   - `adjacency_vector`: A `std::vector<std::vector<int> >` representing the adjacency vector
+
+### `System` (system.hpp), holds all parts together
+1. Template arguments
+   - `value_t`: Scalar type
+   - `drum_t`: Drum type
+   - `grabber_t`: Data exfiltrator type
+   - `sysparams_t`: System parameters type
+   - `force_t`: Force functional type
+   - `coupler_t`: Coupler type
+   - `driver_t`: Driver type
+   - `stepper_t`: Stepper type
+   - `matelecalc_t`: Matrix element calculator type