This needs a proper doxygen documentation before anything can be merged