Added documentation to most under-documented classes, and added some missing functionalities