more tests and docs