Added documentation to a lot of classes and fixed a few bugs / added some features