* Refactored existing code and added doxygen comments for mostly every public type
* refactored cmake files
* refactored file structure