more tests and documentation