complete main functionalities
update README.md
add test cases;