added documentation to every class (@author)