add doxygen documentation
move DataObject_private to separate files