update docs
add more tests