add documentation for many methods