tests and documentation