update README.md
update README.md
update README.md
completely refractored
update test cases