adding documentation with doxygen. moving and renaming headers.