more tests; rewrite
a lot of new tests
rewrite continue, more tests
more test, docs