diff --git a/README.md b/README.md
index 8eb164134729b4d5781fd4bf52b5b8f2a55285c3..05e05b9cf8a6b349d7b6c39990d877f674a336bb 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 eisgenerator is a shared library (libeisgenerator.so) and CLI application that allows one to generate [EIS](https://de.wikipedia.org/wiki/Impedanzspektroskopie) spectra with high performance.
 The target application is generating test and example datasets for machine learning applications.
 
-eisgenerator's development and target platform is UNIX, but it should compile on nigh any platform
+eisgenerator's development and target platform is UNIX, but it should compile on nigh on any platform
 
 ## Compile/Install
 
@@ -29,14 +29,13 @@ In a console do:
 
 ### Cross-compile for windows on UNIX
 
-* Have mingw cross-compile toolchain installed
+* Have the mingw cross-compile toolchain installed
 * git clone https://git-ce.rwth-aachen.de/carl_philipp.klemm/eisgenerator.git
 * cd eisgenerator
 * mkdir build
 * cd build
 * cmake -DCMAKE_TOOLCHAIN_FILE=./crossW64.cmake ..
 * make
-* sudo make install
 
 ## Basic usage of CLI application
 
@@ -49,13 +48,13 @@ flags:
 --model: model string, format is similar to RHD RelaxIS except that the implicit operator is parallel instead of serial, IE. "rc" is a resistor and condenser in parallel while "r-c" is the same in series and that parameters can be passed by adding {number} after the parameter, if an element requires more than one parameter they are specified by adding several comma separated values in between the brackets like so: {420, 56}
 
 * Supported Elements
-	* c: cap
+	* c: capacitor
 		* one parameter: capacitance {C}
 	* r: resistor
 		* one parameter: resistance {R}
 	* l: inductor
 		* one parameter: inductance {L}
-	* w: warburg element (infinite), one parameters {A}
+	* w: warburg element (infinite)
 		* one parameter: Warburg coefficient {A}
 	* p: constant phase element
 		* two parameters: {Q, alpha}
@@ -78,7 +77,7 @@ Generates Nyquist plot of model specified, allows the usage of the same flags as
 
 ### Linking
 
-it is best to link to this library with the help of [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/) as this provides platform a agnostic to query for paths and flags. Almost certenly, pkg-config is already integrated into your buildsystem.
+it is best to link to this library with the help of [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/) as this provides platform a agnostic to query for paths and flags. Almost certainly, pkg-config is already integrated into your buildsystem.
 
 ## Python bindings
 
diff --git a/doc/mainpage.md.in b/doc/mainpage.md.in
index fa7a04485a5994014547a057440731d483d88a43..67e3110f9b098ee1e4d8ede785ae92747f4786c0 100644
--- a/doc/mainpage.md.in
+++ b/doc/mainpage.md.in
@@ -1,8 +1,8 @@
 \mainpage @PROJECT_NAME@ manual
 
-**@PROJECT_NAME@** is a C++ shared library (lib@PROJECT_NAME@.so) and CLI application that allows one to generate EIS spectra with high performance. The target application is generating test and example datasets for machine learning applications. @PROJECT_NAME@'s development and target platform is GNU/Linux, but besides a c++20 compiler and libstd++ it has no dependencies and should compile on nigh any platform. @PROJECT_NAME@ also has python bindings, described [here](https://github.com/IMbackK/eisgeneratorpy), but note that using these erases a lot of the performance benefit of using this library. For information on how to build this library please look at the \ref README
+**@PROJECT_NAME@** is a C++ shared library (lib@PROJECT_NAME@.so) and CLI application that allows one to generate EIS spectra with high performance. The target application is generating test and example datasets for machine learning applications. @PROJECT_NAME@'s development and target platform is GNU/Linux, but besides a c++20 compiler and libstd++ it has no dependencies and should compile on nigh any platform. @PROJECT_NAME@ also has python bindings, described [here](https://github.com/IMbackK/eisgeneratorpy), but note that using these erases a lot of the performance benefit of using this library. For information on how to build this library please look at the \ref README.
 
-for an example on how to use the library see example tab above, for API documentation start here:
+For an example on how to use this library see the example tab above, for API documentation start here:
 * eis::Model
 	* Main object used to evaluate equivalent circuits
 * \ref TYPES
@@ -14,7 +14,7 @@ for an example on how to use the library see example tab above, for API document
 * \ref TRANS
 	* Functions to translate @PROJECT_NAME@ model strings to and from other formats
 
-for a description on how the model description string used by this library see \ref modelpage
+For a description on how the model description string used by this library see \ref modelpage.
 
 ## Execution models:
 
@@ -45,7 +45,7 @@ This execution model is only available on UNIX and UNIX-like platforms providing
 
 ### TorchScript execution
 
-The final execution model generates a [TorchScript](https://pytorch.org/docs/stable/jit.html) for the equivalent circuit which can be compiled using [torch::jit::compile](https://pytorch.org/cppdocs/api/function_namespacetorch_1_1jit_1a8660dc13a6b82336aadac667e6dccba1.html) into a graph of torch/rocBLAS/cuBLAS GPU kernels for GPU execution. This provides the highest possible performance. Due to the high latency associated with executing GPU kernels this method should only be expected to outperform compiled execution if a total of 10^8 or more data points are required and only performs well when a large batch of these data points is required at a time. This version is also highly advantageous when calculating impedance spectra as part of a larger system requiring GPU execution as in this case expensive device->host->device copies are avoided. Though torch autograd this version also provides atomatic derivatives making it useful where integration into machine-learning backward passes is required. Due to deficiencies in the windows port of Torch this version massively underperforms on Microsoft Windows and another platform should be used. Due to MiOpen not being available on Microsoft Windows this method is unable to perform GPU execution on this platform on AMD hardware, the CPU fallback used in this case is slower than tree execution.
+The final execution model generates a [TorchScript](https://pytorch.org/docs/stable/jit.html) for the equivalent circuit which can be compiled using [torch::jit::compile](https://pytorch.org/cppdocs/api/function_namespacetorch_1_1jit_1a8660dc13a6b82336aadac667e6dccba1.html) into a graph of torch/rocBLAS/cuBLAS GPU kernels for GPU execution. This provides the highest possible performance. Due to the high latency associated with executing GPU kernels this method should only be expected to outperform compiled execution if a total of 10^8 or more data points are required and only performs well when a large batch of these data points is required at a time. This version is also highly advantageous when calculating impedance spectra as part of a larger system requiring GPU execution as in this case expensive device->host->device copies are avoided. Through Torch AutoGrad this version also provides automatic derivatives, making it useful where integration into machine-learning backward passes is required. Due to deficiencies in the windows port of Torch this version massively underperforms on Microsoft Windows and another platform should be used. Due to MiOpen not being available on Microsoft Windows this method is unable to perform GPU execution on this platform on AMD hardware, the CPU fallback used in this case is slower than tree execution.
 
 \image html TorchExecution.svg width=80%
 \image latex TorchExecution.pdf width=\textwidth/2
diff --git a/eisgenerator/basicmath.h b/eisgenerator/basicmath.h
index 8527fac5234cd23f4ddea81f6ea1983dc1d90817..d5571800d93782e3f60e0a547584acc123da911a 100644
--- a/eisgenerator/basicmath.h
+++ b/eisgenerator/basicmath.h
@@ -111,7 +111,7 @@ namespace eis
 	*
 	* @param data The data to calculate on.
 	* @param centroid The centroid to use, if nullptr is passed here, the mean of the data will be used as the centroid.
-	* @return The Pearson correlation coefficient.
+	* @return The variance.
 	*/
 	fvalue nyquistAreaVariance(const std::vector<eis::DataPoint>& data, eis::DataPoint* centroid = nullptr);
 
@@ -133,7 +133,7 @@ namespace eis
 	void noise(std::vector<eis::DataPoint>& data, double amplitude, bool relative);
 
 	/**
-	* @brief Removes duplicate data points form the data.
+	* @brief Removes duplicate data points from the data.
 	*
 	* Duplicates are detected by checking the value of omega for sameness using fvalueEq with the default ulp.
 	*
@@ -155,7 +155,7 @@ namespace eis
 	/**
 	* @brief This function resamples, extrapolates and interpolates to fit the data given to the frequencies also given.
 	*
-	* Data is resampled to the target size, interpolation for data points is performed using linear interpolation
+	* Data is resampled to the target size, interpolation for data points is performed using linear interpolation,
 	* extrapolation is performed using linear or base 10 logarithmic extrapolation.
 	*
 	* @param omegas The frequencies to resample the data to.
diff --git a/eisgenerator/eistype.h b/eisgenerator/eistype.h
index 63f227c02204f2dd9fac593c7ea8e485138a18e8..ebb05577c234911000602fc87aa3079de6f9cbaf 100644
--- a/eisgenerator/eistype.h
+++ b/eisgenerator/eistype.h
@@ -445,17 +445,17 @@ public:
 /**
 * @brief Returns the a vector of DataPoints as a pair of valarrays.
 *
-* @return A pair of valarrays first the real part and second the imaginary part.
+* @return A pair of valarrays, first the real part and second the imaginary part.
 */
 std::pair<std::valarray<fvalue>, std::valarray<fvalue>> eisToValarrays(const std::vector<eis::DataPoint>& b);
 
 /**
-* @brief Returns the mean l2 element wise distance of he given spectra.
+* @brief Returns the mean l2 element wise distance of the given spectra.
 *
 * This function will be moved to the math API in the future.
 *
 * @param a The first set of points.
-* @param b The second set of points, must be the same length as a.
+* @param b The second set of points, must contain the same number of elements as a
 * @return The mean l2 distance.
 */
 fvalue eisDistance(const std::vector<eis::DataPoint>& a, const std::vector<eis::DataPoint>& b);
diff --git a/eisgenerator/log.h b/eisgenerator/log.h
index 0da45947cc07ea98ffedf783fdcb42d49ab1ee89..7393c57a6af4c2bd170ceabe1f97358e36d9a587 100644
--- a/eisgenerator/log.h
+++ b/eisgenerator/log.h
@@ -26,7 +26,7 @@ namespace eis
 {
 
 /**
-* Various math functions performed on eisgenerator types
+* The logging functions used by eisgenerator
 * @defgroup LOG Log
 * @{
 */
diff --git a/eisgenerator/model.h b/eisgenerator/model.h
index 75072ea439f3e1151e36148d9fa9e791d15cffb6..2f053da9040540c48c1c6d0c6ac73a00cf3100cc 100644
--- a/eisgenerator/model.h
+++ b/eisgenerator/model.h
@@ -35,13 +35,13 @@ namespace eis
 struct CompiledObject;
 
 /**
-* Eis modeling
+* Eis modeling.
 * @defgroup MODELING Modeling
 * @{
 */
 
 /**
-* @brief The main class of eisgenerator representing a equivalent circuit model.
+* @brief The main class of eisgenerator representing an equivalent circuit model.
 */
 class Model
 {
@@ -256,9 +256,9 @@ public:
 	/**
 	* @brief Compiles this model into TorchScript
 	*
-	* Can be compiled to GPU kernel executeing bytecode by torch::jit::compile.
+	* Can be compiled to GPU kernel bytecode by torch::jit::compile.
 	*
-	* @return Yhe TorchScript code or an empty string if compilation was unsuccessful.
+	* @return The TorchScript code or an empty string if compilation was unsuccessful.
 	*/
 	std::string getTorchScript();
 
@@ -270,9 +270,10 @@ public:
 	std::string getCompiledFunctionName() const;
 
 	/**
-	* @brief Gets the function name in the code returned by getTorchScript and getCode for this model.
+	* @brief Gets a set of indecies that together create a iso-difference set of spectra.
 	*
-	* @return The function name in the code for this model.
+	* @param distance the target distance between subisquent spectra relative to eis::eisDistance.
+	* @return A vector of indecies corresponding to the iso-difference spectras.
 	*/
 	std::vector<size_t> getRecommendedParamIndices(eis::Range omegaRange, double distance, bool threaded = false);
 };