diff --git a/README.md b/README.md
index 13c79bcdc871a7aaf06fcde5c9cd4f3a0ede4687..14ed9543ac2df755dd764dc75959479e2d29f0a3 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ described in the following. Note that qualifiers, references and the like are di
 where it improves legibility. Consult the source files for more information.
 
 ### Template Type `Vec2` (`vec2.hpp`), 2-vector utility class
-1. Template parameters
+1. Template arguments
    - `value_t`: type of vector entries
 2. Members
    - Access
@@ -47,7 +47,7 @@ where it improves legibility. Consult the source files for more information.
      - `<<` with `std::ostream`
 
 ## Type `Diagonalizer` (`diagonalizer.hpp`), class to diagonalize symmetric Matrices
-1. Members
+1. Member functions
    - `std::vector<double> ev(std::vector<double> mat, size_t N)`
      - returns eigenvalues of the symmetric matrix mat of linear size N
      - throws upon diagonalization failure
@@ -57,4 +57,47 @@ where it improves legibility. Consult the source files for more information.
 2. Further developments
    - Only finding eigenvectors and -values in a certain range may be added later on
 
-## Type
+## Template Type `Drum` (`drum.hpp`), represents a single drum top resonator
+1. Template arguments
+   - `value_t`: Scalar type
+   - `params_t`: Drum parameters container type
+   - `vars_t`: Drum variables container type
+   - `sbuffer_t`: Stepper buffer container type
+2. Access
+   - `params_t get_parameters()`
+     - returns the parameters, const and reference versions implemented
+   - `vars_t get_variables()`
+     - returns the variables, const and reference versions implemented
+   - `sbuffer_t get_sbuffer()`
+     - returns the stepper buffer, const and reference versions implemented
+3. Modifiers
+   - `void set_coupling_0(value_t)`
+     - Sets coupling 0
+   - `void set_coupling_1(value_t)`
+     - Sets coupling 1
+   - `void set_coupling_2(value_t)`
+     - Sets coupling 2
+   - `void set_drive(value_t)`
+     - Sets central electrode coupling
+4. Description
+A drum is described by a set of (static) parameters (stiffness, mass, x-y position, etc),
+which are to be stored in a container of type `params_t`. The variables (displacement, velocity,
+electrode charges, etc.) are stored in a container of type `vars_t`. These containers may need to
+be adapted to the situation at hand. When time evolving, the stepper will use the container of
+type `sbuffer_t` to store its intermediate results. Note that the default constructor of
+this class is `delete`d. It should be constructed from an object of type `params_t`.
+
+## Template Type `Rk4Stepper` (`rk4_stepper.hpp`), performs timesteps using rk4 scheme
+1. Template arguments
+   - `value_t`: Scalar type
+   - `params_t`: Drum parameters container type
+   - `vars_t`: Drum variables container type
+   - `buffer_t`: Stepper buffer container type
+   - `force_t`: Force functional type
+2. Member functions
+   - `void step_1(force_t, std::vector<drum_t>, std::vector<std::vector<int> >, value_t dt, value_t time)`
+   - `void step_2(force_t, std::vector<drum_t>, std::vector<std::vector<int> >, value_t dt, value_t time)`
+   - `void step_3(force_t, std::vector<drum_t>, std::vector<std::vector<int> >, value_t dt, value_t time)`
+     - 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