diff --git a/README.md b/README.md
index bf37bad..cdc979b 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,77 @@
# ESBO-ETC
+A modular exposure time calculator for the ESBO telescope.
-A modular exposure time calculator for the ESBO telescope.
\ No newline at end of file
+## Introduction
+This repository contains the source code of the ESBO-ETC, a highly modular exposure time calculator.
+
+ESBO-ETC aims on modelling the physical aspect of light coming from a target through optical components
+(e.g. atmosphere, mirrors, lenses, ...) on the detector. The set up of this so called optical pipeline can be
+individually defined using a configuration file. Additionally, the thermal emission of optical components, the
+obstruction of components as well as different PSFs including pointing jitter can be considered.
+
+Finally, ESBO-ETC allows the computation of either the necessary exposure time for a desired SNR, the SNR for a given
+exposure time or, in case of a BlackBodyTarget, the sensitivity as the minimum apparent magnitude for a given exposure
+time and SNR. All computations support a batch-mode, allowing to compute multiple scenarios at once.
+
+### Features
+ESBO-ETC offers many different optical components and features which will be explained in the following.
+
+#### Targets
+``
+
+Currently ESBO-ETC supports the following two different types of targets. A configuration can contain only one target
+which has to be contained in the container ``. Each target consists of the basic tag
+`` and possible other target-type specific attributes.
+* **`type`:** The type of the target. Currently, only `BlackBodyTarget` and `FileTarget` are supported.
+* **`size`:** The size of the target which can be either `point` or `extended`. In case of a point-source, a PSF will be
+used to determine the irradiance of each pixel. In case of a extended source, a uniform PSF is assumed, ignoring the
+tags ``, ``, and some instrument specific tags.
+
+##### BlackBodyTarget
+``
+
+Model a target as a black body of a given temperature and magnitude.
+* **`temp`:** The temperature of the black body.
+* **`temp_unit` _optional_:** The unit of the black body's temperature. This has to be one of [`K`, `Celsius`].
+The default is `K`.
+* **`mag`:** The apparent magnitude of the black body in magnitudes.
+* **`mag_unit` _optional_:** The unit of the black body's magnitude. This has to be `mag`. The default is `mag`.
+* **`band`:** The band used for fitting the black body's flux density to Vega's flux density. This has to be one of
+[`U`, `B`, `V`, `R`, `I`, `J`, `H`, `K`, `L`, `M`, `N`].
+
+##### FileTarget
+``
+
+Create a target from a file containing the spectral flux densities of the target.
+* **`val`:** The path to the file containing the spectral flux densities. For details on the required structure see
+section _Reading spectral quantities from files_.
+
+#### Optical Components
+``
+
+Each optical component consists of the basic tag `` and the attribute `type` and possible other
+component-specific attributes.
+* **`type`:** The type of the optical component. This can be one of the following types.
+
+##### Atmosphere
+`
+
+This components models the behaviour of an atmosphere which has a spectral transmittance and a spectral emission.
+* **`transmittance`:** The path to the file containing the spectral transmittance coefficients. For details on the
+required structure see section _Reading spectral quantities from files_.
+* **`emission` _optional_:** The path to the file containing the spectral radiance of the emission. For details on the
+required structure see section _Reading spectral quantities from files_.
+
+#### Detectors
+
+#### Other Features
+##### Reading spectral quantities from files
+The format of a file has to be either structured text (e.g. CSV) or astropy ECSV and will be automatically detected.
+In case of structured text, the units of the columns have to be defined in the column header within square brackets
+(e.g. "wavelength [nm]"). The file must contain two columns with units: wavelength and the spectral quantity.
+
+## Running ESBO-ETC
+
+## Configuration File
+
+## Extending ESBO-ETC
\ No newline at end of file