first batch of documentation
(cherry picked from commit 4c41af41e665cd41396783635a905d1743ce9596)