Added more classes and documentation