more tests and doc