a bit more tests and documentation