Add lots of documentation for base classes