Proper unicode handling through out the code

* Implement proper unicode handling through out the code
* test unicode handling
* migrate to doxygen documentation