document classes and methods