Add proper documentation to all classes