update readme
add required dependencies
add tests
fix some little bugs