diff --git a/integrators/integrator.py b/integrators/integrator.py
index 45fd016b09b15063fea45c721009b2269fdc11e0..340635bc7824904afe0d567ad6dab5060cb25bcf 100644
--- a/integrators/integrator.py
+++ b/integrators/integrator.py
@@ -4,13 +4,42 @@
 
 
 class Integrator:
+  '''
+  All other integrator classes, e.g., TPS1 and MPS derive from this class.
+  The methods of this class serve as an interface, mostly for changing
+  specific parameters, e.g., A, Ms, ... 
+  or OutputOptions, most importantly the following methods:
+    .SetResultsFolder()
+    .SaveMagnetization()
+    .SaveMesh()
+    .RecordExternalFieldAt()
+    .RecordMagnetization()
+  --> see their individual help docs for further info
+  or for high-level control over the integration:
+    .Integrate()
+  
+  '''
 
 
 #------------------------------------------------------------------------------#
 
 
   def __init__(self, scheme, geometry, parameters=None, output=None, numthreads = 1):
-
+    '''
+    Initializes the Integrator.
+    scheme = [TPS1, TPS2, TPS2AB, MPS, MPSAB]
+    geometry = [instance of the Geometry class]
+    parameters = [instance of the parameters class]
+    output = [optional, instance of the OutputOptions class]
+    numthreads = [int]; 
+      - only effective if neither ngsolve, bempp, mpi4py have been imported,
+        before the Integrator object is initialized.
+      - If importing one of the above cannot be avoided,
+        use the environment flags (for 4 threads):
+        - OMP_NUM_THREADS=4
+        - BEMPP_NUM_THREADS=4
+        - NGS_NUM_THREADS=4
+    '''
     self._integrator = scheme(geometry, parameters, output, numthreads)
 
 
@@ -18,6 +47,15 @@ class Integrator:
 
 
   def Integrate(self, duration=None, relax=False):
+    '''
+      starts integration.
+      - if duration [float] is specified --> for duration seconds
+        else from T_start to T_end
+      - if relax=True the following parameters are used:
+        - H_ext = None
+        - maxwellCoupling = "strayField"
+        - spintronicsCoupling = "none"
+    '''
     self._integrator.Integrate(duration=duration, relax=relax)
 
 
@@ -25,6 +63,10 @@ class Integrator:
 
 
   def SaveMagnetization(self, filename=None):
+    '''
+    filename ["string.vtk"]
+    - current magnetization state stored to filename as VTK-file
+    '''
     self._integrator.SaveMagnetization(filename)
 
 
@@ -32,6 +74,11 @@ class Integrator:
 
 
   def SaveMesh(self, filename=None):
+    '''
+    filename ["string.vol"]
+    - mesh will be stored as Netgen .vol-file
+    '''
+
     self._integrator.SaveMesh(filename)
 
 
@@ -39,6 +86,10 @@ class Integrator:
 
 
   def SetResultsFolder(self, foldername):
+    '''
+    foldername [string]
+    --> All results for this simulation will be stored in this folder
+    '''
     self._integrator.SetResultsFolder(foldername)
 
 
@@ -241,6 +292,10 @@ class Integrator:
 
 
   def RecordExternalFieldAt(self, value):
+    '''
+    value [(float, float, float)]
+    - external field will be recorded at given point in R^3
+    '''
     self._integrator.RecordExternalFieldAt(value)
 
 
@@ -248,6 +303,12 @@ class Integrator:
 
 
   def RecordMagnetization(self, record=True, maxwell=False, every=1.0e-09):
+    '''
+    record [True, False] ... whether VTK-files of magnetization are written.
+    maxwell [True, False] ... whether VTK-files of, e.g., the stray field
+      are written.
+    every [float] ... VTK-files written every, e.g., 1e-9 seconds
+    '''
     self._integrator._RecordMagnetization(record, maxwell, every)