add some documentation, add forward declarations
improve logging
rework device files
rework device files
rework device files
improve logging